在 Ubuntu 里 dhclient “不生效”是非常常见的问题,通常不是 dhclient 本身坏了,而是被别的东西接管了网络,或者用法不对。下面按最常见原因给你梳理。
如果你用的是 Ubuntu Desktop,网络基本由 NetworkManager 管理:
systemctl status NetworkManager
特点:
dhclient eth0✅ 正确做法:
nmcli con show
nmcli con mod <连接名> ipv4.method auto
nmcli con up <连接名>
或直接重启:
systemctl restart NetworkManager
如果是 Ubuntu Server(18.04+):
systemctl status systemd-networkd
它也会接管 DHCP。
✅ 正确配置:
/etc/netplan/01-netcfg.yaml
示例:
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用:
netplan apply
dhclient
可能:
sudo dhclient -r eth0
sudo dhclient eth0
查看是否拿到地址:
ip addr show eth0
dhclient 不会自动 up 网卡:
ip link show eth0
如果是 DOWN:
sudo ip link set eth0 up
sudo dhclient eth0
Ubuntu 18.04+ 默认 不用 /etc/network/interfaces 管 DHCP。
如果你还在改它,但不会生效。
检查:
cat /etc/network/interfaces
如果是服务器版,应该用 netplan。
确认不是网络问题:
tcpdump -i eth0 port 67 or port 68
如果没有 DHCP Discover / Offer:
ps aux | grep -E 'dhclient|NetworkManager|systemd-network'
Ubuntu 里
dhclient不生效,90% 是因为 NetworkManager 或 netplan 在管网络,你手动跑的 dhclient 被覆盖。
如果你愿意,可以贴一下:
ip addr / netplan 配置我可以直接帮你指出该改哪里。