下面从排查思路 + 常用命令 + 典型故障点三个方面,系统梳理 Debian 下 DHCP 故障排查方法,适用于 DHCP 客户端(获取 IP) 和 DHCP 服务器(提供服务) 两种场景。
ip a
ip link
确保接口状态为 UP,例如:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
如果没 UP:
ip link set eth0 up
Debian 常见 DHCP 客户端:
ps aux | grep dhclient
手动发起 DHCP 请求:
dhclient -v eth0
nmcli device status
nmcli connection show
重启连接:
nmcli connection down id <连接名>
nmcli connection up id <连接名>
tcpdump -i eth0 port 67 or port 68 -vv
正常 DHCP 流程应为:
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPACK
如果没有 DHCPOFFER → 服务器没响应
journalctl -u networking
journalctl -u NetworkManager
dmesg | grep eth
或传统日志:
cat /var/log/syslog | grep dhcp
DHCP 使用:
iptables -L -n -v
nft list ruleset
临时关闭测试:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
cat /etc/network/interfaces
正确示例:
auto eth0
iface eth0 inet dhcp
应用配置:
ifdown eth0 && ifup eth0
systemctl status isc-dhcp-server
启动:
systemctl start isc-dhcp-server
cat /etc/dhcp/dhcpd.conf
常见错误:
range示例:
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 domain-name-servers 8.8.8.8;
}
检查语法:
dhcpd -t
cat /etc/default/isc-dhcp-server
确保:
INTERFACESv4="eth0"
journalctl -u isc-dhcp-server
cat /var/log/syslog | grep dhcpd
常见错误:
No subnet declarationAddress already in usePermission denied⚠️ DHCP 服务器 IP 必须属于它要服务的 subnet,否则不响应。
ip a
| 场景 | 检查点 |
|---|---|
| 虚拟机 | 网络模式(桥接 / NAT) |
| 容器 | docker 网络 / macvlan |
| 交换机 | DHCP Snooping / VLAN |
| 多 DHCP | IP 冲突、多个 DHCP 抢答 |
✅ 网卡 UP
✅ DHCP 客户端或网络服务正常
✅ tcpdump 看到的 DHCP 报文
✅ 防火墙未拦截
✅ 服务器 subnet / 接口配置正确
✅ 日志无报错
你可以直接告诉我:
cat /etc/debian_version)tcpdump 输出我可以针对你当前环境逐步定位问题。