Ubuntu 上 DHCP 失败 的原因很多,下面按最常见 → 较少见的顺序给你一个排查清单,基本能覆盖 90% 的情况。你可以对照着一步步看。
ip link
DOWN,DHCP 一定失败sudo ip link set eth0 up
(把 eth0 换成你的接口名,如 ens33)
Ubuntu 18.04+ 默认使用 netplan,但有时 NetworkManager 干扰 DHCP。
检查:
ps aux | grep -E 'NetworkManager|systemd-networkd'
✅ 推荐做法:
systemd-networkdNetworkManager查看配置:
cat /etc/netplan/*.yaml
✅ 正确 DHCP 示例(以太网):
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用配置:
sudo netplan apply
⚠️ 常见错误:
ps aux | grep dhclient
手动请求 DHCP:
sudo dhclient -v eth0
如果报错:
No DHCPOFFERS received → 网络/路由器问题Permission denied → 权限或接口问题测试:
sudo tcpdump -i eth0 port 67 or port 68
看不到 DHCP Offer → 不是 Ubuntu 问题
✅ 解决:
常见错误:
✅ 建议:
sudo ufw status
DHCP 使用:
✅ 临时测试:
sudo ufw disable
ip a
如果看不到接口或 MAC 全是 0 → 驱动问题
✅ 检查:
lspci | grep -i net
dmesg | grep eth
ip a
ip route
cat /etc/netplan/*.yaml
sudo journalctl -u systemd-networkd
sudo journalctl -u NetworkManager
| 现象 | 原因 |
|---|---|
| 一直卡在 DHCP | 路由器没回包 |
| DHCP 成功但没网关 | netplan 配置错误 |
| 时好时坏 | 网络冲突 / 多 DHCP |
| 虚拟机失败 | 网络模式错误 |
你可以直接把下面信息发我(复制粘贴即可):
ip a
cat /etc/netplan/*.yaml
sudo journalctl -xe | tail -n 50
我可以直接告诉你 是哪一行配置或哪个环境导致 DHCP 失败 ✅