Net-SNMP 与自研 Agent（Windows 11 环境）对接测试命令汇总
一、环境配置与验证命令
powershell
# 1. 验证 Net-SNMP 安装成功
xxlsnmpnms -h

# 2. 配置 Windows 防火墙（允许 161/UDP 端口，需管理员权限）
New-NetFirewallRule -DisplayName "SNMP Agent (161/UDP)" -Direction Inbound -LocalPort 161 -Protocol UDP -Action Allow
New-NetFirewallRule -DisplayName "SNMP Agent (161/UDP)" -Direction Outbound -LocalPort 161 -Protocol UDP -Action Allow

# 3. 检查 161 端口占用情况（若端口超时）
netstat -ano -p udp | findstr :161

# 4. 结束占用 161 端口的进程（替换 <PID号> 为实际进程ID，需管理员权限）
taskkill /F /PID <PID号>

# 5. SNMPv3 用户配置（手动创建/编辑 C:\usr\etc\snmp\snmpd.conf，添加以下内容）
# createUser testuser SHA "AuthPass123" AES "PrivPass123"
# rwuser testuser authPriv
二、SNMPv1 测试命令
powershell
# 1. 基础连通性测试
xxlsnmpnms get -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.3.0

# 2. GETNEXT 操作测试（遍历 MIB 树）
xxlsnmpnms getnext -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1
xxlsnmpnms getnext -v 1 -c public 192.168.3.134:161 1.3.6.1.4.1.12345
xxlsnmpnms getnext -v 1 -c public127.0.0.1 1.3.6.1.2.1.1 > snmpwalk_v1.log

# 3. SET 操作测试（修改可写 OID）
xxlsnmpnms get -v 1 -c private 127.0.0.1 1.3.6.1.2.1.1.4.0

xxlsnmpnms set -v 1 -c private 127.0.0.1 1.3.6.1.2.1.1.4.0 s "test@windows.com"

xxlsnmpnms get -v 1 -c private 127.0.0.1 1.3.6.1.2.1.1.4.0


xxlsnmpnms get -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.4.0

xxlsnmpnms set -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.4.0 s "test@windows.com"

xxlsnmpnms get -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.4.0

# 4. 异常场景测试
xxlsnmpnms get -v 1 -c wrongcommunity 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 1 -c public 127.0.0.1 1.3.6.1.2.1.999.999.0
xxlsnmpnms set -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.1.0 s "invalid"
三、SNMPv2c 测试命令
powershell
# 1. 基础功能验证（批量查询、MIB 遍历）
xxlsnmpnms get -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.3.0
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.3.0
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.4.0
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.4.1.12345.1.1
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.4.1.12345.1.2
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.4.1.12345.1.3
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.6.3.10.2.1.1
xxlsnmpnms getnext -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1.0

snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1
//对应xxlsnmpnms getnext 
snmpget -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.3.0


# 2. GETBULK 操作测试（v2c 特有批量获取）
snmpbulkwalk -v 2c -c public -Cn0 -Cr5 127.0.0.1 1.3.6.1.2.1.1

xxlsnmpnms bulkwalk -v 2c -c public -Cn0 -Cr5 127.0.0.1 1.3.6.1.2.1.1

# 3. 错误处理测试（类型不匹配）
xxlsnmpnms set -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.3.0 s "not-integer"
snmpset -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.3.0 s "not-integer"
四、SNMPv3 测试命令
powershell
# 1. 不同安全级别测试
xxlsnmpnms get -v 3 -u testuser -l noAuthNoPriv 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u testuser -a none -x none 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a none -x none 127.0.0.1 1.3.6.1.2.1.1.1.0

以 SHA1 认证 为例（支持 SHA1/SHA256）：
xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x none 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms getnext -v 3 -u v3user -a SHA1 -A "authpass123" -x none 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms bulkwalk -v 3 -u v3user -a SHA1 -A "authpass123" -x none -Cn0 -Cr5 127.0.0.1 1.3.6.1.2.1.1

以 SHA1 认证 + AES128 加密 为例（加密算法支持 AES128/DES）：
xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x AES128 -X "privpass456" 127.0.0.1 1.3.6.1.2.1.1.1.0


snmpget -v 3 -u v3user -l noAuthNoPriv 127.0.0.1 1.3.6.1.2.1.1.1.0

snmpget -v 3 -u v3user -l authNoPriv -a SHA -A authpass123 127.0.0.1 1.3.6.1.2.1.1.1.0

snmpget -v 3 -u v3user -l authPriv -a SHA -A authpass123 -x DES -X privpass123 127.0.0.1 1 1.3.6.1.2.1.1.1.0

加密鉴权：
xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a MD5 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES192 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x 3DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x AES192 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x 3DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a MD5 -A "authpass123" -x DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a MD5 -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA256FULL -A "authpass123" -x 3DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0

xxlsnmpnms get -v 3 -u v3user -a SHA1 -A "authpass123" -x AES192 -X "privpass123" 192.168.3.153 1.3.6.1.2.1.1.1.0


高级算法加密覆盖：
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x 3DES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES192 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u v3user -a SHA256 -A "authpass123" -x AES256 -X "privpass123" 127.0.0.1 1.3.6.1.2.1.1.1.0





xxlsnmpnms  get -v 3 -u testuser -l authNoPriv -a SHA -A AuthPass123 127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms get -v 3 -u testuser -l authPriv -a SHA -A AuthPass123 -x AES -X PrivPass123127.0.0.1 1.3.6.1.2.1.1.1.0

# 2. 异常场景测试（错误密码、错误算法）
xxlsnmpnms -v 3 -u testuser -l authPriv -a SHA -A WrongPass -x AES -X PrivPass123127.0.0.1 1.3.6.1.2.1.1.1.0
xxlsnmpnms -v 3 -u testuser -l authPriv -a SHA -A AuthPass123 -x DES -X PrivPass123127.0.0.1 1.3.6.1.2.1.1.1.0
五、调试与日志命令
powershell
# 1. 显示十六进制报文（基础调试）
xxlsnmpnms -v 2c -c public -d127.0.0.1 1.3.6.1.2.1.1.1.0

# 2. 输出全流程详细调试信息
xxlsnmpnms -v 2c -c public -D all127.0.0.1 1.3.6.1.2.1.1.1.0

# 3. 调试日志保存到文件
xxlsnmpnms -v 2c -c public -D all127.0.0.1 1.3.6.1.2.1.1.1.0 > C:\snmp_debug.log 2>&1