在 Ubuntu 上 DHCP 无法分配地址(无论是 Ubuntu 作为 DHCP 客户端获取不到 IP,还是 Ubuntu 作为 DHCP 服务器分配不出 IP),常见原因可以分两类来看。下面按“症状 → 原因 → 排查方法”说明。
ip link
DOWN解决:
sudo ip link set eth0 up
Ubuntu 18.04 以后默认使用 netplan。
检查:
cat /etc/netplan/*.yaml
正确示例(DHCP):
network:
version: 2
ethernets:
eth0:
dhcp4: true
应用配置:
sudo netplan apply
Ubuntu 通常使用:
systemd-networkdNetworkManager查看状态:
systemctl status systemd-networkd
systemctl status NetworkManager
测试:
sudo tcpdump -i eth0 udp port 67 or udp port 68
如果没有 DHCP Discover/Offer,说明请求没出去或被拦截。
ip addr
若已有静态 IP,却仍想用 DHCP,需先释放:
sudo dhclient -r eth0
sudo dhclient eth0
常见服务:
isc-dhcp-serverdnsmasqsystemctl status isc-dhcp-server
systemctl status dnsmasq
/etc/default/isc-dhcp-server:
INTERFACESv4="eth0"
否则服务可能直接退出。
cat /etc/dhcp/dhcpd.conf
常见问题:
示例:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
}
网络中已有路由器 DHCP,Ubuntu DHCP 被“抢答”。
解决:
查看日志:
journalctl -u isc-dhcp-server
或
cat /var/log/syslog | grep dhcp
✅ 网线 / 虚拟网卡已连接
✅ 接口 UP
✅ netplan 或 NetworkManager 配置正确
✅ DHCP 服务运行
✅ 地址池与接口同网段
✅ 无防火墙/VLAN 阻断
✅ 网络中无 DHCP 冲突
如果你愿意,可以告诉我:
ubuntu 20.04 / 22.04)dhclient / netplan / dnsmasq / isc-dhcp)我可以直接帮你看配置文件。