You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止net-snmp的snmpd服务监听默认端口161?

解决snmpd仍监听默认端口161的问题

根据你提供的调试日志,能看到snmpd确实加载了你指定的1610端口,但同时保留了默认的udp:127.0.0.1:161,这通常是由以下几个原因导致的,对应的解决方法如下:

1. 配置文件中存在多个agentaddress指令

Ubuntu系统的net-snmp默认配置文件(/etc/snmp/snmpd.conf)里通常会自带一行默认的监听配置:

agentAddress udp:127.0.0.1:161

如果你只是在配置文件末尾添加了自己的agentaddress dtlsudp:localhost:1610,而没有注释掉默认的那一行,net-snmp会将多个agentaddress的端口列表合并,导致默认的161端口仍然被监听。

解决方法:
打开你的snmpd.conf,找到默认的agentAddress行,用#注释掉,然后只保留你需要的监听配置:

# 注释掉默认的监听配置
# agentAddress udp:127.0.0.1:161

# 仅保留你的自定义监听端口
agentaddress dtlsudp:localhost:1610

2. 系统启动脚本附加了默认监听参数

Ubuntu的net-snmp通常会通过/etc/default/snmpd文件设置启动参数,如果该文件中的SNMPDOPTS包含了-agentaddress参数,会覆盖配置文件中的设置,或者追加默认端口。

解决方法:
打开/etc/default/snmpd,检查SNMPDOPTS变量,确保其中没有包含-agentaddress udp:127.0.0.1:161这类参数。如果有,删除该部分内容,保存后重启snmpd。

3. 启动命令强制指定默认端口(可选)

如果上面的方法都无效,你可以在启动snmpd时直接通过命令行参数强制覆盖所有监听端口,确保只加载你需要的端口:

snmpd -f -r -DALL -c snmpd.conf -agentaddress dtlsudp:localhost:1610

命令行中的-agentaddress参数会优先于配置文件中的设置,直接替换默认的端口列表。

验证结果

修改完成后,重启snmpd,然后用以下命令检查监听端口:

ss -tulpn | grep snmpd

如果输出中只有1610端口,说明配置生效了。

内容的提问来源于stack exchange,提问作者David Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:32:38