2012-04-16 226 views
1

我已通过在我的Ubuntu服务器上安装了snmpd apt-get install snmpd snmp。后来我改了行中的/ etc /默认/ SNMPDsnmpd未在Ubuntu服务器上的端口161上侦听

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重启)。但是,当我运行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 
+0

偏离主题;属于[sf]。另外,你是否在寻找一个snmpd日志文件? “snmpd”进程是否正在运行?如果运行'netstat -nap | grep [pid-of-snmpd-process]',你会得到什么? – 2012-04-16 05:03:55

+0

是,它的运行和进程ID是23592.须藤netstat的-nap | grep的23592 UDP 0 0 0.0.0.0:161 0.0.0.0:* 23592/SNMPD UNIX 2 [] DGRAM 2985974 23592/SNMPD – user612308 2012-04-16 06:10:52

+2

SNMP使用UDP,你不会在netstat中看到处于监听状态的任何TCP套接字..(UDP套接字永远不会处于监听状态) – nos 2012-04-16 07:27:25

回答

1

看起来它监听161/UDP。从man page

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

阅读手册页了解更多细节

3

用户“不”是正确的; 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” 的点是,使得另一机可监视它。要做到这一点,请确保第一行被注释掉,并且第二行被启用。

+0

感谢您的第二个笔记。它拯救了我的一天。 +1 – ALH 2015-08-23 09:26:46

相关问题