如何让 SNMP 代理接受来自网络中其他主机的连接?

如何让 SNMP 代理接受来自网络中其他主机的连接?

我已经在系统中配置了 SNMP 代理,其 IP 地址为 192.168.1.1。我已使用以下命令在其中配置了 SNMP 代理教程

我修改了如下几行

在文件中/etc/snmp/snmpd.conf

 rocommunity public 127.0.0.1
 rocommunity public 192.168.1.0/24
 rocommunity public 192.168.2.0/24

在文件中/etc/default/snmpd

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

当我尝试从 IP 地址为 192.168.1.1 的系统使用 snmpwalk 命令时,它运行正常。

例如:命令输出的一部分:

iso.3.6.1.2.1.1.1.0 = STRING: "Linux devenv 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (74328) 0:12:23.28
iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>"
iso.3.6.1.2.1.1.5.0 = STRING: "devenv"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72

但当我尝试通过不同的系统使用带有 ip 的 snmpwalk 时,192.168.2.1它给出了No response from 192.168.1.1。请帮忙。

snmpwalk -c public -v1 192.168.1.1 | less

PS 我在 IP 地址为 192.168.2.1 的机器上配置了相同的步骤。或者还有其他要使用的程序。

编辑1。

netstat这里是截图吗

Snmpd 网络状态

答案1

编辑文件/etc/snmp/snmpd.conf。更改以下行:

agentAddress  udp:127.0.0.1:161

到:

agentAddress  udp:161

然后重新启动 snmpd:

sudo service snmpd restart

它现在应该监听所有接口:

$ sudo netstat -ulnp | grep 161
udp        0      0 0.0.0.0:161             0.0.0.0:*                           8517/snmpd      

答案2

我的解决方案

agentAddress udp:161
...
# rocommunity public  default    -V systemonly
rocommunity public 172.25.7.169/32

...并重新启动 snmp

它使 snmp 监听所有接口但只应答 172.25.7.169(我的监控服务器)

答案3

您也可以做类似的事情,全部组合在这里:agentAddress udp:172.16.0.3:161,udp6:[2001:470:0:4000::3]:161,udp6:[2001:470:0:10::3]:161

相关内容