我正在使用net-snmp在linux中收集系统信息。 但我发现有问题。
当我通过netstat检查Net-SNMP的端口使用情况时,我发现使用3个UDP端口的net-snmp。
结果如下。
[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使用了另外两个没有161的udp端口。 我也发现为什么2个udp端口被snmp随机占用。
这些端口用于发送snmp陷阱。 当我删除tran2sink和informsink选项时,不再出现2个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端口。 所以我想使用这些陷阱选项并更改端口。
如何修复端口?
答案 0 :(得分:0)
您可以尝试为指令设置端口,如下所示:
trap2sink 1.1.1.1:port_num例如trap2sink 1.1.1.1:162
我希望我理解你的问题,这会有所帮助。
答案 1 :(得分:0)
这些是SNMP Ephemeral端口。以下是关于Microsoft support page的引用:
当SNMP服务正在运行时,可能会通过netstat注意到它 命令行实用程序,除了众所周知的端口 发送和接收随机短暂的SNMP陷阱(161/162) 端口也是由该服务创建的。
随机端口使用是预期的行为,并为此打开 发送"管理的目的"陷阱
...
此端口将保留 SNMP服务正在运行时系统,但未被主动使用 除非要向外发送管理陷阱。由于SNMP没有 在这个随机端口上侦听入站数据包,这不存在 安全漏洞。