在 Linux 里“DHCP 冲突”通常指IP 地址冲突或DHCP 分配异常,常见原因可以分为几类:
一、网络中有人手动配置了相同 IP
这是最常见原因:
- 某台机器手动设置了静态 IP
- DHCP 服务器又把这个 IP 分配给了另一台机器
- 导致两台机器 IP 冲突
现象:
解决:
- 查冲突 IP 的 MAC:
arp -n | grep 冲突IP
- 在交换机上查 MAC 对应端口
- 改成 DHCP 或换不同静态 IP
二、DHCP 地址池设置不合理
例如:
- 地址池和静态 IP 段重叠
- 地址池太小,租约没释放完
示例问题配置:
DHCP 池:192.168.1.100 - 192.168.1.200
静态 IP:192.168.1.150
解决:
- 静态 IP 放在 DHCP 池外
- 或配置 DHCP 保留(reservation)
三、多个 DHCP 服务器共存
常见于:
- 路由器 + Linux DHCP 服务器
- 虚拟机桥接网络
现象:
解决:
- 只保留一个 DHCP 服务器
- 或在交换机上禁用非法 DHCP
四、DHCP 租约未正确释放
- 客户端关机未发 DHCP RELEASE
- 服务器租约表未过期就重用 IP
解决:
- 缩短租约时间(测试环境)
- 重启 dhcp 服务清理租约
五、虚拟机 / 容器网络问题
现象:
解决:
ip link show
确认 MAC 是否重复,重新生成。
六、Linux 自身配置问题
例如:
- 同时配置了静态 IP 和 DHCP
- NetworkManager 与 systemd-networkd 冲突
检查:
nmcli device status
systemctl status systemd-networkd
七、快速排查命令
ip addr
arp -n
journalctl -u dhcpd
cat /var/lib/dhcpd/dhcpd.leases
如果你愿意,可以告诉我:
- 是服务器还是客户端冲突
- 用的什么发行版(Ubuntu / CentOS / Rocky)
- DHCP 软件(isc-dhcp / dnsmasq)
我可以帮你精准定位。