在 Debian 上配置或使用 DHCP(通常是 isc-dhcp-server / dhcpd) 报错的原因非常多,下面按常见场景 + 对应报错原因 + 解决办法给你梳理一下。
No subnet declaration for eth0报错示例
No subnet declaration for eth0 (192.168.1.10).
原因
/etc/dhcp/dhcpd.conf 中没有匹配网卡 IP 的 subnet 段解决 确认网卡 IP:
ip addr
在 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;
}
Not configured to listen on any interfaces!原因
/etc/default/isc-dhcp-server 指定网卡解决
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
然后:
sudo systemctl restart isc-dhcp-server
报错
Address already in use
原因
dnsmasq 或 systemd-networkd DHCP检查
sudo ss -lunp | grep :67
解决 关闭冲突服务:
sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq
DHCP 使用 UDP 67/68
sudo ufw allow 67/udp
sudo ufw allow 68/udp
如果客户端和服务器不在同一子网:
dhcrelaysudo apt install isc-dhcp-relay
报错
/etc/dhcp/dhcpd.conf line 12: semicolon expected
检查
sudo dhcpd -t
✅ 这个命令非常有用,只测语法不启动服务。
Debian 12 常见:
sudo systemctl status isc-dhcp-server
旧版可能是:
sudo systemctl status dhcpd
dhcpd -t 无报错你可以把具体报错内容贴出来(终端完整报错),我可以精准定位是哪一条配置问题。
例如:
Job for isc-dhcp-server.service failed...