我正在使用 snmp 并试图与
snmpwalk -v 2c -c public x.x.x.x ipadd
Run Code Online (Sandbox Code Playgroud)
其中 xxxx 是使用 ubuntu 12.04 的 pc 的 ip 我得到这个答案:
IP-MIB::ipAddrTable = No Such Object available on this agent at this OID
Run Code Online (Sandbox Code Playgroud)
那么如何从 ubuntu 12.04 LT pc 获取 ip 地址,也许我可以使用另一个命令?
谢谢你的回答 。
安装 SNMP 及其守护进程 ( sudo apt-get install snmp snmpd) 后,您需要编辑该文件/etc/snmp/snmp.conf并注释掉包含“mibs:”的行
在此文件中,更改行:
mibs :
Run Code Online (Sandbox Code Playgroud)
到
#mibs :
Run Code Online (Sandbox Code Playgroud)
接下来,假设您还没有这样做,您将需要获取全套 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
Run Code Online (Sandbox Code Playgroud)
请注意,这将允许任何系统查询您的计算机。您需要调整此项以限制 SNMP 访问您的设备。
您现在需要将只读 SNMP 字符串更改为public您选择的自定义字符串,如下所示:
#rocommunity public default -V systemonly
rocommunity <My$ecret$tr1nG> (Don't use this example!)
Run Code Online (Sandbox Code Playgroud)
注意:-V systemonly从该行中删除将允许访问整个 MIB 树,而不是将其限制为树的系统部分。
重新启动 SNMP 守护进程
sudo service snmpd restart
Run Code Online (Sandbox Code Playgroud)最后,您的 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
Run Code Online (Sandbox Code Playgroud)
也可以使用基于 GUI 的 MIB 浏览器来运行相同的查询。就我个人而言,我更喜欢使用SNMPb进行图形查询。安装 SNMPb后,打开 SNMPb 并导航到 MIB 树中所需的 OID。在您的具体情况下,它将是1.3.6.1.2.1.4.20oriso-> org-> internet-> mgmt-> mib-2 -> ip -> ipAddrTable并执行 Get Bulk 以接收相同的数据。

小智 0
我遇到了同样的问题,并且我已经完成了上述操作,但后来我意识到我需要做的就是将以下行添加到 /etc/snmp/snmpd.conf
# For IF-MIB data to show up in snmpwalk
view systemonly included .1.3.6.1.2.1.4.20
Run Code Online (Sandbox Code Playgroud)
然后重新启动 snmpd:
/etc/init.d/snmpd restart
Run Code Online (Sandbox Code Playgroud)
然后我得到:
% ~/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
Run Code Online (Sandbox Code Playgroud)
华泰
| 归档时间: |
|
| 查看次数: |
15607 次 |
| 最近记录: |