使用snmpset命令修改OID内容失败问题求助
SNMP SET命令返回成功但OID值未持久化修改的问题
问题现象
执行snmpget确认初始值:
snmpget -v 2c -c public 10.1.240.53 .1.3.6.1.4.1.1023.1.2.1.2.1.3.1
输出:
SNMPv2-SMI::enterprises.1023.1.2.1.2.1.3.1 = INTEGER: 1
执行snmpset修改值,命令返回成功:
snmpset -v 2c -c public 10.1.240.53 .1.3.6.1.4.1.1023.1.2.1.2.1.3.1 integer 9
输出:
SNMPv2-SMI::enterprises.1023.1.2.1.2.1.3.1 = INTEGER: 9
但再次执行snmpget查看,值回到初始的1,修改未生效。
可能原因及解决方法
1. 错误使用读社区字符串执行写操作
SNMPv2c中,读(snmpget)和写(snmpset)通常使用不同的社区字符串,public一般是只读社区,没有修改权限。设备可能返回假的成功响应,实际未执行修改。
解决:
确认设备的写社区字符串(通常为private或自定义字符串),替换命令中的社区参数:
snmpset -v 2c -c <write-community> 10.1.240.53 .1.3.6.1.4.1.1023.1.2.1.2.1.3.1 integer 9
2. 目标OID为只读属性
即使snmpset返回成功,部分设备会对只读OID返回“成功”但不执行修改。需要确认该OID的访问权限。
解决:
使用snmptranslate查看OID的MIB属性:
snmptranslate -Td .1.3.6.1.4.1.1023.1.2.1.2.1.3.1
检查输出中的Access字段,如果是read-only,则该OID无法通过snmpset修改。
3. 设备需要手动保存配置
部分网络设备修改SNMP参数后,需要执行保存操作才能持久化配置,否则会自动恢复为初始值。
解决:
查阅设备文档,找到对应的配置保存方式:
- 部分设备支持通过SNMP SET特定OID触发保存;
- 或通过SSH/Telnet登录设备,执行CLI保存命令(如
write memory、save等)。
4. OID值受设备内部逻辑控制
该OID可能对应设备的状态参数(如硬件状态、运行模式),只能由设备自动更新,无法手动修改。
解决:
查阅设备的MIB手册,确认该OID的具体用途和修改限制,判断是否允许手动修改。
内容的提问来源于stack exchange,提问作者hilmi uğur
相关产品推荐
相关产品推荐

