|
Ubuntu下安装net-snmp,具体步骤如下:
1、获取net-snmp的安装包,这里我们选择源代码的安装方式,当然你也可以选择ubuntu的网络下载方式安装,如:
》 sudo apt-get
install net-snmp
或者是自己从网络down下来手动编译安装,这里我选择最新版本的net-snmp
2、把net-snmp-
# tar -zxvf net-snmp-
#cd
net-snmp-
3、安装Ubuntu下的snmp的依赖包,具体如下:
》 sudo
apt-get install libperl-dev //这步是自动下载,后自动安装
4、进入到解压目录 cd
net-snmp,开始配置
》 ./configure
--with-default-snmp-version="3"
--with-sys-contact="@@no.where" --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"
./configure --enable-mfd-rewrites --enable-embedded-perl
--with-perl-modules--with-default-snmp-version="2"
--with-sys-contact="linux"--with-sys-location="
配置完成之后,会自动打印出配置信息,可以看如下关于Net-snmp的配置信息:
Net-SNMP
configuration summary:
5、编译和安装 //此时最好重启下再编译否则可能编译出错
》 sudo make
》 sudo make
install
6、设置任何目录下可以运行snmp的命令,需做一下设置: echo export
LD_LIBRARY_PATH=/usr/local/lib 》 .bashrc
7. 启动snmp进程
可在任何目录下运行snmpd
!也可以/usr/share/sbin/snmpd –c /usr/local/share/snmp/snmpd.conf & //后台运行
8、验证安装是否成功,如下所示: 》 snmpget –version 如果成功,则显示当前的安装版本号,NET-SNMP version:
如果提示如下错误:
snmpget:
error while loading shared libraries:
libnetsnmp.so.30: cannot open shared object file: No such file or directory
提示缺少2个动态库文件,解决方法:cp /usr/local/lib/libnetsnmpmibs.so.30 /usr/lib 和cp /usr/local/lib/libnetsnmpmibs.so.30 /usr/lib
或者将/usr/local/lib下所有的包都copy到/usr/lib下即可,这次即可正确输出版本号,表示Ubuntu下安装net-snmp成功!
9. 配置snmpd.conf文件。
(cd /usr/local/share/snmp/,在终端输入snmpconf,运行snmpconf后,提示创建三个配置文件:snmpd.conf,snmptraps.conf,snmp.conf,然后提示把这三个文件移到/usr/local/share/snmp/下。
手动配置snmpd.conf的方法:先1进入选2进入
acess control setup 然后选3(这里设rocommunity为public)然后选择默认,然后回车。,返回选择4:Agent
Operating Mode,输入端口161.之后可以vi snmpd.conf修改参数。)
配置snmpd.conf文件:
进入源码包目录,cp EXAMPLE.conf /usr/local/share/snmp/下,或者直接在snmp目录下直接编辑创建vi snmpd.conf文件。
#vi
/usr/local/share/snmp/snpmd.conf
把下面的内容添加到snmpd.conf文件中,并把snmpd.conf端口前的UDP去掉。
#我的配置文件是这样的:就是四个指令--com2sec,group,
view, access
# com2sec 设置可访问的IP地址,访问的口令以及分组
# sec.name source community #下面指定一个可以访问的IP
com2sec local 192.168.0.2 public
# group 设置安全用户名的组
#sec.model sec.name
group MyRWGroup v
# view 可以对哪些MIB子树进行访问
#incl/excl subtreemask
view all included.1
# access 指定各个组对MIB子数的读写权限
#context sec.model sec.level match read write notif
access MyRWGroup "" any noauth
exact all all none
10. 验证服务是否启动成功,同时查看161端口
# lsof
-i:161 ,如果终端显示如下图1,NAME的地方要显示*而不要localhost,
则服务已经启动成功
启动成功图。
如果显示下图,说明161端口是监听在localhost上的,也就是说不对外开放,只能访问本地的161端口。我们应该把这个限制去掉。
访问受限,一般是这种
以下是去掉访问限制的方法:
1.编辑路由表
# sudo
iptables -L 查看现有的iptables防火墙规则。如果您刚架设好服务器,那么规则表应该是空的。
显示内容如下:
Chain INPUT(policy ACCEPT)
target prot
opt source destination
Chain
FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#iptables -A INPUT -p udp -i eth0 --dport 161 -j ACCEPT
# sudoiptables -L 查看现有的iptables防火墙规则
Chain INPUT (policy ACCEPT)
target prot optsource destination
ACCEPT udp -- anywhere anywhere udpdpt:snmp
2.保存路由表。
机器重启后,iptables中的配置信息会被清空。您可以将这些配置保存下来,让iptables在启动时自动加载,省得每次都得重新输入。#iptables-save和#iptables-restore是用来保存和恢复设置的。
将配置好的路由表设置为开机自动加载:
#iptables-save >
/etc/iptables.up.rules //先将防火墙规则保存到/etc/iptables.up.rules文件中
然后修改脚本vi /etc/network/interfaces,使系统能自动应用这些规则,把下面内容添加进去。
auto eth0
iface eth0inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
全部完成后,重启Ubuntu,查看路由表看161端口是否去除了localhost限制。
11. 测试我们的代理是否正常工作,输入:(这里注意指定的版本号要与snmpd.conf中配置的用户组版本号一致)
# snmpwalk
-v
# snmpwalk -v
进行本地测试:
snmpwalk -v
snmpwalk -v
snmpwalk -v
1 -c public localhost .
snmpwalk –v
snmpwalk -c public -v
12. 开机启动服务,也可以不配置为服务,每次开机运行下就是了。
命令:gedit
/etc/rc.local 在exit 0前添加usr/local/sbin/snmpd –c/usr/local/share/snmp/snmpd.conf
&
13. 关闭snmp服务
ps aux|grep
snmp,获取snmp进程PID,然后killpid ,这里记住了,每次对snmpd.conf文件修改后,如果要生效,必须要杀掉snmp的老进程,再启用新的。
也可用这个service snmpd restart重新启动服务如果遇到snmpd:unrecognizedservice,只要apt-get install
snmp snmpd 更新下就可。
更多关注凌阳深圳嵌入式培训网,linux资料学习:javascript:;