1

我已经通过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
4

2 回答 2

4

用户“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”手册页对“状态”列有这样的说法:

套接字的状态。由于在原始模式中没有状态并且在 UDP 中通常没有使用状态,因此该列可以留空。

因此,您不会期望在这里看到“LISTEN”一词。


然而,从实际的角度来看,我还想指出一件事。通常,默认的 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”的目的是为了让另一台机器可以监控它。为此,请确保注释掉第一行并启用第二行。

于 2014-02-07T05:35:02.270 回答
1

看起来它正在监听 161/UDP。从手册页

默认情况下,snmpd 在所有 IPv4 接口上的 UDP 端口 161 上侦听传入的 SNMP 请求。但是,可以通过将一个或多个侦听地址指定为 snmpd 的参数来修改此行为。监听地址采用以下形式: [<transport-specifier>:]<transport-address>

阅读手册页以获取更多详细信息

于 2012-04-16T07:25:02.787 回答