我在linux中使用net-snmp来收集系统信息。但我发现有问题。
当我通过netstat检查Net-SNMP的端口使用情况时,我发现net-snmp使用3个UDP端口。
结果如下所示。
[root@ snmp]# netstat -anp | grep snmp
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 6392/snmpd
udp 0 0 0.0.0.0:49005 0.0.0.0:* 6392/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 6392/snmpd
udp 0 0 0.0.0.0:44837 0.0.0.0:* 6392/snmpd 如您所见,snmpd使用了另外2个不带161的udp端口。此外,我还发现了snmp随机占用2个udp端口的原因。
这些端口用于发送snmp陷阱。当我删除tran2sink和informsink选项时,两个UDP端口不再出现。
这是我配置snmpd.conf的一部分
###########################################################################
# SECTION: Trap Destinations
#
# Here we define who the agent will send traps to.
# trap2sink: A SNMPv2c trap receiver
# arguments: host [community] [portnum]
trap2sink 192.168.1.4
# informsink: A SNMPv2c inform (acknowledged trap) receiver
# arguments: host [community] [portnum]
informsink 192.168.1.4 NMS_COM
# trapcommunity: Default trap sink community to use
# arguments: community-string
trapcommunity NMS_COM
# authtrapenable: Should we send traps when authentication failures occur
# arguments: 1 | 2 (1 = yes, 2 = no)
authtrapenable 1我的程序必须使用40000~50000的udp端口。因此,我想使用这些陷阱选项并更改端口。
如何修复端口?
发布于 2015-07-09 16:58:13
您可以尝试为指令设置端口,如下所示:
trap2sink 1.1.1.1:port_num,例如trap2sink 1.1.1.1:162
我希望我理解了你的问题,这将会有所帮助。
发布于 2015-07-09 18:35:24
这些是SNMP临时端口。以下是Microsoft support page对它们的引用:
当SNMP服务运行时,可以通过netstat命令行实用程序注意到,除了用于发送和接收SNMP陷阱(161/162)的已知端口外,服务还创建了一个随机临时端口。
随机端口使用是预期行为,其目的是发送“管理”陷阱
..。
当SNMP服务运行时,此端口将保留在系统中,但除非要将管理陷阱发送出站,否则此端口不会被主动使用。由于SNMP不侦听此随机端口上的入站数据包,因此不存在安全漏洞。
https://stackoverflow.com/questions/31151667
复制相似问题