Ubuntu 上 DHCP 服务(通常是 isc-dhcp-server 或 dnsmasq)无法启动,原因比较常见,下面按排查思路 + 常见原因 + 解决方法给你说明。
systemctl status isc-dhcp-server
systemctl status dnsmasq
常见情况:
配置文件:
/etc/dhcp/dhcpd.conf
常见错误:
;option routers查看错误:
journalctl -xe
systemctl status isc-dhcp-server
示例正确配置:
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 subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
}
需要指定网卡:
/etc/default/isc-dhcp-server
示例:
INTERFACESv4="eth0"
⚠️ 如果网卡名不对(如 enp3s0),DHCP 一定起不来。
查看网卡名:
ip addr
DHCP 服务器必须在对应网段有 IP
检查:
ip addr show eth0
如果没有:
sudo ip addr add 192.168.1.1/24 dev eth0
或写进 netplan(Ubuntu 18+):
/etc/netplan/*.yaml
查看:
sudo netstat -tulnp | grep :67
常见冲突:
解决:
sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq
或修改 resolved 配置。
查看:
sudo aa-status
可临时测试:
sudo systemctl stop apparmor
虽然不常导致“启动失败”,但会导致客户端拿不到地址:
sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo systemctl restart isc-dhcp-server
journalctl -xe | tail -n 50
把报错信息贴出来,我可以直接帮你定位。
lsb_release -a)journalctl -xe)如果你愿意,可以把日志直接发我,我可以逐行帮你分析。