插件窝 干货文章 linux用什么命令找dhcp包啊

linux用什么命令找dhcp包啊

DHCP 租约 使用 dhclient 452    来源:    2025-04-18

在 Linux 系统中,可以通过以下几种方式查找或捕获 DHCP 相关的网络包:


1. 使用 tcpdump 抓取 DHCP 包

DHCP 协议基于 UDP,客户端使用端口 68,服务器使用端口 67。命令如下:

sudo tcpdump -i eth0 -vvv -n port 67 or port 68
  • -i eth0:指定网卡(根据实际网卡名替换,如 ens33wlan0)。
  • -vvv:显示详细数据包信息。
  • -n:禁止 IP 地址反向解析(加快显示速度)。
  • port 67 or port 68:过滤 DHCP 相关的端口。

输出示例

10:23:45.678 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from aa:bb:cc:dd:ee:ff

2. 使用 tshark(Wireshark 命令行工具)

如果系统安装了 wireshark 工具包,可以用以下命令:

sudo tshark -i eth0 -f "udp port 67 or port 68" -Y "bootp.option.dhcp"
  • -f:抓包过滤规则(基于端口)。
  • -Y:显示过滤规则(仅显示 DHCP 相关包)。

3. 查看 DHCP 租约信息

如果是查找已分配的 DHCP 租约(非实时抓包),可以检查以下文件: - DHCP 客户端租约(客户端记录): bash cat /var/lib/dhcp/dhclient.leases - DHCP 服务器租约(如果本机是 DHCP 服务器): bash cat /var/lib/dhcpd/dhcpd.leases # 常见于 dhcpd 服务


4. 使用 journalctl 查看 DHCP 日志

对于使用 systemd-networkddhclient 的系统:

journalctl -u systemd-networkd | grep -i dhcp
# 或
journalctl -u dhclient | grep -i dhcp

5. 通过 dhclient 手动触发 DHCP 请求

如果需要重新获取 DHCP 并观察过程:

sudo dhclient -v eth0  # -v 表示输出详细信息

注意事项

  • 需要 root 权限(使用 sudo)。
  • 如果抓不到包,确认网卡是否正确(ip a 查看活跃接口)。
  • DHCP 包通常是广播包,确保抓包时设备正在请求或更新 IP(如重启网络 sudo systemctl restart networking)。

根据你的具体需求(调试、监控或日志分析),选择合适的方法即可。