如何在linux中更改net-snmp trap发送端口?

时间:2015-07-01 02:31:34

标签: linux snmp net-snmp

我正在使用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端口。 所以我想使用这些陷阱选项并更改端口。

如何修复端口?

2 个答案:

答案 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没有   在这个随机端口上侦听入站数据包,这不存在   安全漏洞。