在 Ubuntu 上 DHCP 报错的原因很多,下面按常见原因 → 表现 → 解决办法给你梳理一下,你可以对照看是哪一种。
现象:
dhclient 报错dhclient already running原因:
Ubuntu 默认用 NetworkManager 或 systemd-networkd 管理 DHCP,手动跑 dhclient 会冲突。
解决:
sudo systemctl status NetworkManager
sudo nmcli connection up <连接名>
sudo dhclient eth0 手动跑现象:
DHCPDISCOVER on eth0 to 255.255.255.255 port 67
No DHCPOFFERS received
原因:
网卡是 DOWN 状态
解决:
ip link set eth0 up
现象:
DHCPNAK
No DHCPOFFERS received
原因:
解决:
现象: 开机 DHCP 起不来
原因:
手动写了 iface eth0 inet dhcp 但和 NetworkManager 冲突
解决(Ubuntu 18.04+ 不推荐手写):
现象:
Failed to start NetworkManager
DHCP failed
示例正确配置:
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用:
sudo netplan apply
现象: 能发 DHCPDISCOVER,收不到 OFFER
原因:
解决:
sudo ufw allow 67/udp
sudo ufw allow 68/udp
现象:
一直 DHCPREQUEST,无响应
解决:
sudo ip link set eth0 address 00:11:22:33:44:55
ip a
ip route
journalctl -u NetworkManager -b
journalctl -u systemd-networkd -b
sudo dhclient -v eth0
lsb_release -a)我可以直接帮你精准定位 ✅