如何设置snmp agentX子代理的端口?

时间:2011-11-10 08:54:16

标签: sockets snmp net-snmp snmpd

我正在努力扩展net-snmp以使用agentX编写子代理。 现在我使用net-snmp中的示例代码,并编译为子代理。 以下是我获得的代码: http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_MIB_Module

我成功使用agentX对我的子代理执行snmpget和snmpset。

我的问题:

  1. 我认为子代理和主代理正在侦听端口,如何找到他们正在侦听的端口?我被告知默认端口是 705 ,但是当我使用“netstat”时,我找不到任何正在侦听端口705的进程。

  2. 如何更改子代理的监听端口?我是否需要更改示例代码以设置端口?

3 个答案:

答案 0 :(得分:1)

默认情况下,实际上,在“除了windows之外的任何东西”上,默认是监听位于/var/agentx/master的unix套接字。

您可以使用其他海报建议的API更改侦听地址,甚至使用snmpd.conf配置文件:

agentXSocket tcp:localhost:705

当您创建子代理时,它会读取您的FOO.conf文件,其中FOO是您传递给init_snmp("FOO");

的内容

答案 1 :(得分:0)

问题解决了: http://www.net-snmp.org/wiki/index.php/FAQ%3aAgent_12

添加 netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID,                             NETSNMP_DS_AGENT_X_SOCKET,“tcp:localhost:705”);

在'init_agent'调用之前的示例代码中。

谢谢!

答案 2 :(得分:0)

您需要更改snmpd.conf文件

master agentx
AgentXSocket tcp:X.X.X.X:705

在您的agentx代码中,在init_agent()

之前记下这些行
netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET, "tcp:X.X.X.X:705");