在 Debian 上排查 DHCP 故障,可以按客户端和服务器两类场景来定位。下面给你一套通用、实用的排查思路。
ip addr
ip link
确认网卡是否 UP,有没有拿到 IP。
sudo dhclient -v eth0
-v 看详细过程如果失败,看输出里的:
DHCPDISCOVERDHCPOFFERDHCPACKDebian 常用:
systemctl status networking
# 或
systemctl status dhclient
如果使用 NetworkManager:
systemctl status NetworkManager
nmcli device status
auto eth0
iface eth0 inet dhcp
nmcli connection show
sudo tcpdump -i eth0 port 67 or port 68
没看到 DHCPDISCOVER → 客户端问题
看到 DISCOVER 没 OFFER → 网络或服务器问题
ISC DHCP:
systemctl status isc-dhcp-server
查看日志:
journalctl -u isc-dhcp-server
通常:
/etc/dhcp/dhcpd.conf
测试语法:
dhcpd -t
sudo netstat -anu | grep 67
# 或
ss -anu | grep 67
iptables -L -n
# 或 nft
nft list ruleset
需要放行:
cat /var/lib/dhcp/dhcpd.leases
看是否 IP 已分配完。
如果是 VLAN / 不同网段:
dhcrelay 在跑| 现象 | 可能原因 |
|---|---|
| 一直 DISCOVER 没 OFFER | 服务器没起 / 防火墙 |
| OFFER 但没 ACK | 地址冲突 / 配置错误 |
| 拿到 IP 但不能上网 | 网关 / DNS 配置错 |
| 偶尔失败 | 地址池不足 |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以直接帮你定位。