在 Linux 下排查 DHCP 问题,可以从客户端和服务端两个方向入手。下面按常见场景给你一个系统性的排查思路。
ip addr
ip link
UPip link set eth0 up
dhclient -v eth0
或(部分系统)
dhcpcd -d eth0
观察输出:
DHCPDISCOVERDHCPOFFERjournalctl -u NetworkManager
journalctl -u dhclient
或
dmesg | grep eth0
常见错误:
No DHCPOFFERS receivedDHCPNAK from serverDHCP 使用:
iptables -L -n
nft list ruleset
确保没有丢弃 67/68 端口。
nmcli device status
cat /etc/NetworkManager/NetworkManager.conf
如果是 systemd-networkd:
networkctl status eth0
systemctl status isc-dhcp-server
systemctl status dnsmasq
ISC DHCP
cat /etc/dhcp/dhcpd.conf
常见错误:
rangeINTERFACES 中测试配置:
dhcpd -t
ss -lunp | grep 67
应看到:
*:67
journalctl -u isc-dhcp-server
tail -f /var/log/syslog
bridge link
ip -d link show
DHCP 必须在正确 VLAN / 桥接接口上。
如果客户端和服务端不在同一网段:
dhcrelaycat /var/lib/dhcp/dhcpd.leases
看是否有可用 IP。
✅ 网卡 UP
✅ 防火墙放行 67/68
✅ dhclient 能发请求
✅ 服务端在运行
✅ 配置文件正确
✅ 日志无报错
如果你能告诉我:
我可以给你更精准的命令和解决方案。