在 Debian 下排查 DHCP 地址冲突,可以从 DHCP 服务端、客户端 和 网络层 三个角度来做。下面按常见场景说明。
DHCP 服务器会记录已分配地址:
cat /var/lib/dhcp/dhcpd.leases
重点看:
lease 192.168.1.xhardware ethernet xx:xx:xx:xx:xx:xxbinding state active如果有 同一个 IP 被不同 MAC 反复绑定,很可能冲突。
编辑:
/etc/dhcp/dhcpd.conf
加入:
log-facility local7;
然后看日志:
journalctl -u isc-dhcp-server
# 或
tail -f /var/log/syslog
典型冲突日志:
DHCPDECLINE
DHCPNAK
duplicate address
dhcpd -d 前台调试(临时)systemctl stop isc-dhcp-server
dhcpd -d -f
能看到实时分配与拒绝过程。
这是最常见原因。
arping -I eth0 192.168.1.100
如果有多个 MAC 回复,说明 IP 冲突。
nmap -sn 192.168.1.0/24
对比:
ip neigh
一个 IP 对应多个 MAC = 冲突。
DHCP 客户端会发送 DHCPDECLINE
查看:
journalctl -u dhclient
# 或
cat /var/log/syslog | grep dhclient
dhclient -r eth0
dhclient eth0
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
}
静态设备用 .2–.99
host pc1 {
hardware ethernet aa:bb:cc:dd:ee:ff;
fixed-address 192.168.1.50;
}
ping-check true;
分配前先 ping 一下 IP。
arping IP/var/lib/dhcp/dhcpd.leasesjournalctl -u isc-dhcp-servernmap -sn如果你愿意,可以告诉我:
我可以直接给你针对性命令。