在 Linux 系统中,可以通过以下几种方式查找或捕获 DHCP 相关的网络包:
tcpdump
抓取 DHCP 包DHCP 协议基于 UDP,客户端使用端口 68
,服务器使用端口 67
。命令如下:
sudo tcpdump -i eth0 -vvv -n port 67 or port 68
-i eth0
:指定网卡(根据实际网卡名替换,如 ens33
或 wlan0
)。-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
tshark
(Wireshark 命令行工具)如果系统安装了 wireshark
工具包,可以用以下命令:
sudo tshark -i eth0 -f "udp port 67 or port 68" -Y "bootp.option.dhcp"
-f
:抓包过滤规则(基于端口)。-Y
:显示过滤规则(仅显示 DHCP 相关包)。如果是查找已分配的 DHCP 租约(非实时抓包),可以检查以下文件:
- DHCP 客户端租约(客户端记录):
bash
cat /var/lib/dhcp/dhclient.leases
- DHCP 服务器租约(如果本机是 DHCP 服务器):
bash
cat /var/lib/dhcpd/dhcpd.leases # 常见于 dhcpd 服务
journalctl
查看 DHCP 日志对于使用 systemd-networkd
或 dhclient
的系统:
journalctl -u systemd-networkd | grep -i dhcp
# 或
journalctl -u dhclient | grep -i dhcp
dhclient
手动触发 DHCP 请求如果需要重新获取 DHCP 并观察过程:
sudo dhclient -v eth0 # -v 表示输出详细信息
root
权限(使用 sudo
)。ip a
查看活跃接口)。sudo systemctl restart networking
)。根据你的具体需求(调试、监控或日志分析),选择合适的方法即可。