我已经通过apt get install snmpd snmp在我的ubuntu服务器上安装了snmpd。然后我在/etc/default/snmpd中更改了行

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

之后,我重新启动了snmpd服务器(/etc/init.d/snmpd restart)。然而,当我运行netstat-an grep“listen”时,我没有看到snmpd正在监听端口161。
我没有任何防火墙阻止那个端口。
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

最佳答案

用户“nos”是正确的;udp绑定不会在“netstat”下显示为“listen”。相反,您将看到一行或两行,如下所示,显示“snmpd”确实已准备好在udp端口161上接收数据:

Proto Recv-Q Send-Q Local Address  Foreign Address  State  PID/Program name
udp        0      0 0.0.0.0:161    0.0.0.0:*               1785/snmpd
udp6       0      0 ::1:161        :::*                    1785/snmpd

“netstat”手册页有这样一个关于“state”列的说明:
套接字的状态。由于在原始模式下没有状态,并且在udp中通常没有使用状态,因此此列可能留空。
因此,你不会期望在这里看到“听”这个词。
然而,从实际的角度来看,还有一件事我想指出。通常,默认的net snmp“snmpd.conf”配置文件只将传入连接限制为本地进程。
默认/etc/snmp/snmpd.conf
#  Listen for connections from the local system only
agentAddress  udp:127.0.0.1:161
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
#agentAddress udp:161,udp6:[::1]:161,tcp:161,tcp6:[::1]:161

通常,设置“snmpd”的目的是让另一台机器可以监视它。为此,请确保第一行被注释掉,第二行被启用。

关于linux - snmpd没有在Ubuntu服务器上的端口161上监听,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10168665/

10-10 14:31