linux下使用wireshark捕捉snmp报文

1、安装wireshark并解决wireshark权限不足问题
解决linux普通用户使用Wireshark的权限不足问题_麒麟系统中wireshark 运行显示权限不够-CSDN博客

2、Linux下安装并配置SNMP软件包

(deepseek给出的解答,目前会产生request包,但是会连接不上,可以用来捕获分析,后面有必要分析response,会进一步更新)

一、安装 SNMP 工具

1. 安装 SNMP 软件包

bash

复制

下载

复制代码
# Debian/Ubuntu
sudo apt-get install snmp snmpd snmp-mibs-downloader

# CentOS/RHEL
sudo yum install net-snmp net-snmp-utils
2. 关键组件说明:
  • snmpd:SNMP 代理服务(用于本机提供 SNMP 数据)。

  • snmp :SNMP 客户端工具(如 snmpget, snmpwalk 等)。

  • snmp-mibs-downloader:下载 MIB 数据库的工具(可选)。


二、配置 SNMP 服务(snmpd)

1. 修改配置文件

配置文件路径:/etc/snmp/snmpd.conf

bash

复制

下载

复制代码
sudo nano /etc/snmp/snmpd.conf
2. 基础配置示例(SNMPv2c)

conf

复制

下载

复制代码
# 允许所有来源的只读访问(生产环境建议限制IP)
rocommunity public  default    -V systemonly

# 限制访问IP范围(可选)
rocommunity public  192.168.1.0/24

# 定义系统信息
sysLocation  "Server Room"
sysContact  "admin@example.com"
sysName     "linux-server"

# 暴露更多信息(CPU、内存、磁盘等)
view    systemview  included   .1.3.6.1.2.1.1
view    systemview  included   .1.3.6.1.2.1.25.1
3. 启动服务

bash

复制

下载

复制代码
sudo systemctl restart snmpd
sudo systemctl enable snmpd
4. 防火墙放行(若需要远程访问)

bash

复制

下载

复制代码
sudo ufw allow 161/udp

三、使用 SNMP 客户端工具

1. 查询本地 SNMP 信息

bash

复制

下载

复制代码
# 查询系统描述(OID: 1.3.6.1.2.1.1.1.0)
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1.0

# 查询所有系统信息
snmpwalk -v 2c -c public localhost
2. 查询远程设备

bash

复制

下载

复制代码
snmpwalk -v 2c -c public 192.168.1.100
3. 常用 OID 示例
OID 描述
.1.3.6.1.2.1.1.1.0 系统描述
.1.3.6.1.2.1.1.5.0 主机名
.1.3.6.1.2.1.25.1.1.0 系统运行时间
.1.3.6.1.2.1.25.2.2.0 内存使用

四、安全配置(SNMPv3)

SNMPv3 提供加密和认证,比 v2c 更安全。

1. 创建 SNMPv3 用户

bash

复制

下载

复制代码
sudo net-snmp-create-v3-user -ro -A <密码> -a SHA -X <加密密码> -x AES snmpuser
2. 查询示例

bash

复制

下载

复制代码
snmpwalk -v 3 -u snmpuser -a SHA -A <密码> -x AES -X <加密密码> -l authPriv localhost

五、常见问题排查

  1. 服务未启动

    bash

    复制

    下载

    复制代码
    sudo systemctl status snmpd
    journalctl -u snmpd
  2. 权限问题

    • 检查 snmpd.conf 中的 rocommunityrwcommunity 配置。

    • 确保防火墙未阻止 UDP 161 端口。

  3. MIB 加载失败

    bash

    复制

    下载

    复制代码
    # 编辑 /etc/snmp/snmp.conf 注释掉 "mibs :"
    sudo nano /etc/snmp/snmp.conf

六、扩展应用

  • 监控工具集成:将 SNMP 数据接入 Zabbix、Nagios 或 Prometheus。

  • 自定义 OID :通过 extend 指令在 snmpd.conf 中添加自定义脚本输出。

  • MIB 管理:下载设备厂商的 MIB 文件以解析专用 OID。

通过以上步骤,您可以在 Linux 系统中高效使用 SNMP 进行设备监控与管理。

相关推荐
七歌杜金房9 小时前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia1 天前
linux curl命令详解_curl详解
linux
扛枪的书生1 天前
Linux 网络管理器用法速查
linux
顺风尿一寸2 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode2 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫2 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao4 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐5 天前
Linux内存扩容指南
linux
zylyehuo5 天前
Linux 彻底且安全地删除文件
linux
用户805533698036 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式