我正在努力扩展net-snmp以使用agentX编写子代理。 现在我使用net-snmp中的示例代码,并编译为子代理。 以下是我获得的代码: http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_MIB_Module
我成功使用agentX对我的子代理执行snmpget和snmpset。
我的问题:
我认为子代理和主代理正在侦听端口,如何找到他们正在侦听的端口?我被告知默认端口是 705 ,但是当我使用“netstat”时,我找不到任何正在侦听端口705的进程。
如何更改子代理的监听端口?我是否需要更改示例代码以设置端口?
答案 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”);
谢谢!
答案 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");