本文简要记录了在Windows上安装 net-snmp 5.7.1的步骤,最新的源码包可上net-snmp官方网站下载。

安装net-snmp 5.7.1之前需要先安装

  1. VS2010
  2. Win32 OpenSSL v1.0.1f
  3. ActivePerl 5.16.3

安装步骤如下:

  1. 停止Windows7系统自带的Windows SNMP Service,在 我的电脑-> 管理 -> 服务中可以找到 SNMP Service。

  2. 打开命令行终端cmd,或者PowerCMD,any other you like

  3. 如果build OpenSSL,设置INCLUDE和LIB,使其指向合适OpenSSL安装目录,如下面所示:

1
2
E:\install_snmp\net-snmp-5.7.1\win32>set INCLUDE=C:\OpenSSL-Win32\include
E:\install_snmp\net-snmp-5.7.1\win32>set LIB=C:\OpenSSL-Win32\lib\VC\static
  1. 运行vcvarsall.bat初始化 Visual Studio build environment, 该脚本可在Visual Studio的安装目录中找到:
1
E:\install_snmp\net-snmp-5.7.1\win32>"C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
  1. 运行源码包中的win32\build.bat:
1
E:\install_snmp\net-snmp-5.7.1\win32>build.bat

预期会在屏幕上出现设置向导,最终结果如下,需要注意的是要 enable winExtDLL agent,否则会有一些常用MIB无法获取:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Net-SNMP build and install options
==================================


1. OpenSSL support: enabled
2. Platform SDK support: enabled

3. Install path: c:/usr
4. Install after build: enabled

5. Perl modules: enabled
6. Install perl modules: enabled

7. Quiet build (logged): enabled
8. Debug mode: disabled

9. IPv6 transports (requires SDK): disabled
10. winExtDLL agent (requires SDK): enabled

11. Link type: static

12. Install development files disabled

F. Finished - start build
Q. Quit - abort build
  1. build结束后会出现一个运行脚本的提示,按照提示运行,然后运行源代码包中的install-net-snmp.bat脚本。
1
E:\install_snmp\net-snmp-5.7.1\win32>install-net-snmp.bat
  1. 在PATH环境变量中加入net-snmp的bin目录,使其可以直接在终端运行snmp命令。

  2. 检测net-snmp的版本:

1
2
E:\install_snmp\net-snmp-5.7.1\win32>snmpd -v
E:\install_snmp\net-snmp-5.7.1\win32>snmpwalk --version
  1. 将net-snmp注册为Windows服务:
1
E:\install_snmp\net-snmp-5.7.1\win32>snmpd -register

un-register the service:

1
E:\install_snmp\net-snmp-5.7.1\win32>snmpd -unregister
  1. 启动net-snmp:
1
E:\install_snmp\net-snmp-5.7.1\win32>net start "Net-SNMP Agent"

停止net-snmp可用如下命令:

1
E:\install_snmp\net-snmp-5.7.1\win32>net stop "Net-SNMP Agent"

上述操作参考net-snmp源代码包中README.win32文档,如有疑问可直接查看此文档。