在 Ubuntu 上配置或使用 DHCP(通常是 dhclient 或 systemd-networkd / NetworkManager) 时,出现 “DHCP 超时(DHCP timeout / lease timeout)” 是比较常见的问题。下面按常见原因 → 排查方法 → 解决办法来说明。
✅ 排查:
ip link
看网卡是否是 UP 状态(不是 DOWN)
ethtool eth0
看 Link detected: yes
✅ 测试:
sudo tcpdump -i eth0 port 67 or port 68
如果 只有 DHCP Discover,没有 Offer,说明服务器没回。
Ubuntu 20.04+ 常用 netplan
❌ 错误示例:
dhcp4: no
✅ 正确示例(/etc/netplan/*.yaml):
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用:
sudo netplan apply
虽然少见,但可能:
✅ 临时测试:
sudo ufw disable
Ubuntu 桌面版默认用 NetworkManager
服务器版可能用 systemd-networkd
❌ 两者同时管理同一网卡会 DHCP 失败
✅ 查看:
systemctl status systemd-networkd
systemctl status NetworkManager
常见于:
dhclient eth0
报错:
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
No DHCPOFFERS received
✅ 手动测试:
sudo dhclient -v eth0
ip a → 网卡 UP?ping 192.168.1.1 → 网关通?tcpdump → 有没有 DHCP Offer?netplan 配置 → dhcp4: true?| 报错 | 含义 |
|---|---|
DHCPDISCOVER 无回应 |
服务器没收到或没回 |
dhcp4: timeout |
超时未拿到地址 |
No DHCPOFFERS received |
网络无 DHCP |
address already in use |
IP 冲突 |
你可以贴出以下信息之一:
lsb_release -a)ip a)journalctl -u systemd-networkd 或 dhclient -v)我可以直接帮你定位是哪一类问题。