在 Ubuntu 上 DHCP 无法启动(通常指 isc-dhcp-server 或系统 DHCP 客户端 dhclient / NetworkManager 相关服务起不来)原因很多,下面按常见原因 → 排查方法 → 解决办法给你一个系统清单。
DHCP 服务器(提供 IP)
isc-dhcp-serversudo systemctl status isc-dhcp-server
DHCP 客户端(获取 IP)
systemd-networkd / NetworkManager / dhclient查看错误:
sudo journalctl -u isc-dhcp-server -xe
常见问题:
/etc/dhcp/dhcpd.conf 语法错误subnet 声明✅ 最小可用示例:
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;
option domain-name-servers 8.8.8.8;
}
编辑:
sudo nano /etc/default/isc-dhcp-server
确认:
INTERFACESv4="eth0"
⚠️ 网卡名必须真实存在:
ip a
DHCP 服务器要求:
监听网卡必须已有静态 IP,且属于 subnet 网段
设置静态 IP:
sudo nano /etc/netplan/01-netcfg.yaml
示例:
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.1/24]
dhcp4: no
应用:
sudo netplan apply
sudo ss -lunp | grep :67
如果存在冲突:
dnsmasqsystemctl status NetworkManager
若未运行:
sudo systemctl enable --now NetworkManager
检查 Netplan:
dhcp4: true
sudo ufw status
DHCP 需要:
# 看服务状态
systemctl status isc-dhcp-server
# 看日志
journalctl -u isc-dhcp-server -xe
# 测试配置文件
dhcpd -t
# 看网卡
ip a
# 手动获取 IP
sudo dhclient eth0
请告诉我:
journalctl 或 systemctl status 输出)我可以直接帮你定位到具体哪一行配置错了。