我正在使用 snmp 并尝试使用
snmpwalk -v 2c -c public x.x.x.x ipadd
其中 xxxx 是装有 ubuntu 12.04 的 PC 的 IP,我得到以下答案:
IP-MIB::ipAddrTable = No Such Object available on this agent at this OID
那么我如何从 ubuntu 12.04 LT pc 获取 ip 地址,也许还有另一个命令可以使用?
感谢你的回答 。
答案1
安装 SNMP 及其守护程序 ( sudo apt-get install snmp snmpd
) 后,您需要编辑该文件/etc/snmp/snmp.conf
并注释掉包含“mibs:”的行
在此文件中,更改以下行:
mibs :
到
#mibs :
接下来,假设您还没有完成此操作,您需要获取完整的 IETF MIB 集。由于许可问题,默认情况下,Debian/Ubuntu 系统不附带这些文件。
从终端(Ctrl- Alt- t)输入以下命令:
sudo apt-get install snmp-mibs-downloader
sudo download-mibs
然后,您将需要修改/etc/snmp/snmpd.conf
。
允许 SNMP 系统在其环回地址以外的接口上接收查询。此操作的行应如下所示:
# Listen for connections from the local system only # agentAddress udp:127.0.0.1:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) agentAddress udp:161,udp6:[::1]:161
请注意,这将允许任何系统查询您的机器。您需要调整它以限制 SNMP 对您设备的访问。
现在您需要将只读 SNMP 字符串更改为
public
您选择的自定义字符串,如下所示:#rocommunity public default -V systemonly rocommunity <My$ecret$tr1nG> (Don't use this example!)
注意:
-V systemonly
从行中删除将允许访问整个 MIB 树,而不是将其限制到树的系统部分。重新启动 SNMP 守护程序
sudo service snmpd restart
最后,您的 SNMP 查询现在应该可以正确响应。
例如:
snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1
也可以使用基于 GUI 的 MIB 浏览器运行相同的查询。我个人更喜欢使用SNMP协议图形查询。一旦你有已安装 SNMPb,打开 SNMPb 并导航到 MIB 树中的所需 OID。在您的特定情况下,它将是1.3.6.1.2.1.4.20
或iso-> org-> internet-> mgmt-> mib-2 -> ip -> ipAddrTable
并执行 Get Bulk 以接收相同的数据。
答案2
我遇到了同样的问题,并且我已经完成了上述操作,但后来我意识到我需要做的就是将以下行添加到 /etc/snmp/snmpd.conf
# For IF-MIB data to show up in snmpwalk
view systemonly included .1.3.6.1.2.1.4.20
然后重新启动 snmpd:
/etc/init.d/snmpd restart
然后我得到:
% ~/computer/snmp$ snmpwalk -v 2c -c public -O e mymachinename ipadd
IP-MIB::ipAdEntAddr.10.11.12.3 = IpAddress: 10.11.12.66
IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntIfIndex.10.11.12.66 = INTEGER: 2
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntNetMask.10.11.12.66 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntBcastAddr.10.11.12.66 = INTEGER: 1
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
高血压