在 Debian 上排查 DHCP 问题,通常可以按客户端和服务器两类来分别处理。下面给你一套比较实用的排错思路。
isc-dhcp-server)ip link
ip addr
确保网卡是 UP 状态,例如:
ip link set eth0 up
dhclient -v eth0
观察输出:
DHCPDISCOVERDHCPOFFERDHCPACK如果卡在 DHCPDISCOVER,说明:
Debian 常见坑:
NetworkManager 和 dhclient 抢接口查看:
systemctl status NetworkManager
systemctl status systemd-networkd
如果是服务器,建议:
systemctl stop NetworkManager
systemctl disable NetworkManager
iptables -L
nft list ruleset
DHCP 用:
systemctl status isc-dhcp-server
journalctl -u isc-dhcp-server -e
常见错误:
dhcpd -t
或:
/usr/sbin/dhcpd -t -cf /etc/dhcp/dhcpd.conf
编辑:
/etc/default/isc-dhcp-server
示例:
INTERFACESv4="eth0"
重启:
systemctl restart isc-dhcp-server
tail -f /var/log/syslog
或:
journalctl -u isc-dhcp-server -f
正常应看到:
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPACK
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;
}
注意:
如果是:
需要:
dhcrelay)ip helper-address测试:
tcpdump -i eth0 udp port 67 or udp port 68
看有没有 DHCP 包到达服务器。
✅ 网卡 UP
✅ 无 NetworkManager 冲突
✅ dhclient 能发请求
✅ 服务器配置语法正确
✅ subnet 匹配网卡 IP
✅ 防火墙未拦 UDP 67/68
✅ 日志中有 DHCP 交互
如果你愿意,可以把下面信息贴出来,我可以直接帮你定位:
/etc/dhcp/dhcpd.confjournalctl -u isc-dhcp-server 报错我可以按你的实际环境一步步排。