ISC-DHCP服务器预留固定IP被未知客户端占用导致桌面客户端无法获取地址求助
看起来你遇到了一个挺棘手的DHCP预留IP冲突问题,明明给桌面PC配置了固定地址绑定,结果却被陌生设备占了,确实够闹心的。咱们一步步来拆解可能的原因和解决办法:
可能的原因分析
DHCP地址池范围包含了预留IP
如果你的DHCP地址池(比如subnet 192.168.88.0 netmask 255.255.255.0 { range 192.168.88.100 192.168.88.200; })把192.168.88.150包含在内,服务器可能在预留规则生效前就把这个IP分配给了其他请求的客户端。虽然理论上预留绑定优先级更高,但如果配置加载异常或者地址池规则先匹配,就会出现这种冲突。陌生设备手动设置了静态IP
这是最常见的情况:那个MAC为14:49:E0:0C:28:D2的设备,可能被手动设置了192.168.88.150的静态IP,完全绕过了DHCP服务器。此时你的桌面PC收到服务器的ACK后,会通过ARP探测发现IP已被占用,进而拒绝该IP;服务器收到客户端的拒绝信号后,就会标记这个IP为abandoned。DHCP lease文件异常
从你提供的dhcpd.leases内容来看,这个IP的绑定状态是abandoned但没有记录占用设备的MAC,大概率是lease文件出现损坏,或者服务器处理时发生异常,导致无法正确记录占用者信息。配置未正确重载
虽然你说用了好几年没问题,但也有可能某次修改配置后,没重启DHCP服务或发送重载信号(systemctl reload isc-dhcp-server),导致新的预留规则没生效。
解决步骤
检查地址池与预留IP的范围冲突
打开dhcpd.conf,确认subnet段的range配置没有包含192.168.88.150。如果确实包含了,修改range后重启服务:sudo systemctl restart isc-dhcp-server定位并处理陌生设备
既然能ping通这个IP,用ARP命令查看MAC与IP的对应关系:arp -a 192.168.88.150或者用
ip neigh show命令获取MAC后,登录路由器查看设备列表,确认这是哪台设备(可能是新接入的智能设备、笔记本或机顶盒),然后要么修改它的静态IP,要么按需将其也加入DHCP预留。修复或重建DHCP lease文件
先停止DHCP服务:sudo systemctl stop isc-dhcp-server备份现有lease文件:
sudo cp /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhcpd.leases.bak清空原文件:
sudo truncate -s 0 /var/lib/dhcp/dhcpd.leases最后重启服务,让服务器重新生成lease文件:
sudo systemctl start isc-dhcp-server验证桌面PC的网络状态
在你的Livingroom-PC上清空ARP缓存并重新请求IP:- Windows系统:
arp -d * ipconfig /release ipconfig /renew - Linux系统:
sudo ip neigh flush all sudo dhclient -r sudo dhclient
- Windows系统:
备注:内容来源于stack exchange,提问作者Paleee

