在 Linux 下排查 DHCP(客户端或服务器) 问题,可以按“分层排查”的思路来。下面分别说明 DHCP 客户端排错 和 DHCP 服务器排错,并给出常用命令。
ip link
ip addr
UPNO-CARRIERip link set eth0 up
# 释放
dhclient -r eth0
# 重新获取(调试模式)
dhclient -v eth0
-v 可以看到 DHCP 交互过程
tcpdump -i eth0 port 67 or port 68 -nn
正常应有:
如果只看到 Discover 没有 Offer → 服务器或网络问题
systemctl status NetworkManager
可临时停止测试:
systemctl stop NetworkManager
dhclient eth0
确保未阻止 UDP 67/68:
iptables -L -n
DHCPNAK → 服务器拒绝(IP 冲突 / 地址池问题)以 ISC DHCP(dhcpd) 为例
systemctl status dhcpd
journalctl -u dhcpd -xe
dhcpd -t
或指定配置:
dhcpd -t -cf /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
}
问题常见点:
range/etc/sysconfig/dhcpd
DHCPDARGS="eth0"
firewall-cmd --add-service=dhcp
firewall-cmd --runtime-to-permanent
或 iptables:
iptables -I INPUT -p udp --dport 67 -j ACCEPT
cat /var/lib/dhcpd/dhcpd.leases
✅ 物理层(网卡 / 网线)
✅ 网络层(VLAN / 路由 / 防火墙)
✅ DHCP 服务(配置 / 运行)
✅ 抓包验证(tcpdump)
如果你愿意,可以告诉我:
我可以帮你精准定位。