Ubuntu 上 DHCP 失败 的原因很多,下面按最常见 → 进阶排查给你一个系统性的排查思路,基本能覆盖 90% 情况。
Ubuntu 18.04+ 默认使用 netplan,如果同时启用了 NetworkManager 且无正确配置,DHCP 会失败。
检查:
ps aux | grep -E 'NetworkManager|systemd-networkd'
查看 netplan 配置:
cat /etc/netplan/*.yaml
✅ 典型 DHCP 配置示例:
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用配置:
sudo netplan apply
DHCP 在网卡 DOWN 时必然失败。
ip link
如果看到:
eth0: <BROADCAST,MULTICAST> state DOWN
手动 UP:
sudo ip link set eth0 up
Ubuntu 默认使用 systemd-networkd 或 NetworkManager 处理 DHCP。
检查 DHCP 客户端状态:
systemctl status systemd-networkd
systemctl status NetworkManager
重启:
sudo systemctl restart systemd-networkd
# 或
sudo systemctl restart NetworkManager
验证:
sudo dhclient -v eth0
如果卡住或超时,说明 没有 DHCP 响应。
DHCP 使用:
排查:
sudo iptables -L
临时关闭测试:
sudo ufw disable
YAML 缩进必须严格
❌ 错误示例:
dhcp4: true
optional: true
✅ 正确:
dhcp4: true
optional: true
测试配置:
sudo netplan try
如果你手动运行了:
dhclient
而 systemd-networkd 也在运行,会冲突。
解决:
sudo killall dhclient
sudo systemctl restart systemd-networkd
✅ 检查:
ip link show eth0
✅ 临时更换 MAC 测试:
sudo ip link set eth0 down
sudo ip link set eth0 address 00:11:22:33:44:55
sudo ip link set eth0 up
ip addr
ip route
journalctl -u systemd-networkd -f
journalctl -u NetworkManager -f
| 日志 | 含义 |
|---|---|
DHCPDISCOVER 无响应 |
没 DHCP 服务器 |
DHCPNAK |
IP 被拒绝 |
No lease |
DHCP 失败 |
Timeout |
网络不通 |
你可以直接贴出以下信息(打码敏感内容):
ip addr
cat /etc/netplan/*.yaml
journalctl -u systemd-networkd -n 50
我可以直接告诉你 是哪一步失败 + 怎么改 ✅