温馨提示×

为什么Debian DHCP启动失败

小樊
58
2026-07-15 21:00:56
栏目: 智能运维

Debian 上 DHCP 服务启动失败 的原因很多,下面按最常见 → 较少见的顺序给你一个排查清单,并给出对应的解决方法。你可以逐条对照。


一、最常见原因

1️⃣ DHCP 服务名称错误(最常见)

Debian 默认使用 ISC DHCP Server,服务名是:

isc-dhcp-server

❌ 错误示例:

systemctl start dhcp
systemctl start dhcpd

✅ 正确:

systemctl start isc-dhcp-server

2️⃣ 配置文件错误(/etc/dhcp/dhcpd.conf)

配置文件有语法错误时,DHCP 会直接启动失败。

检查语法:

dhcpd -t

常见错误:

  • 少了分号 ;
  • subnet 写错
  • 花括号 {} 不匹配
  • 未定义 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;
}

3️⃣ 监听网卡未配置(非常常见)

DHCP 必须明确监听哪个网卡。

编辑:

sudo nano /etc/default/isc-dhcp-server

设置:

INTERFACESv4="eth0"

⚠️ 注意:

  • 不要写错网卡名(用 ip a 查看)
  • 如果是桥接,写桥接名(如 br0

4️⃣ 网卡没有 IP / 不在 subnet 内

DHCP 服务器 必须 在 subnet 内有一个 IP。

例如:

subnet 192.168.1.0 netmask 255.255.255.0

你的网卡必须是:

192.168.1.x

查看:

ip a

如果不是,需要给网卡配置静态 IP。


二、查看失败原因(关键)

✅ 最重要的一步

sudo journalctl -u isc-dhcp-server -xe

或:

sudo systemctl status isc-dhcp-server

常见错误示例:

错误信息 含义
Not configured to listen on any interfaces 没配置监听网卡
subnet not declared dhcpd.conf 错误
Address already in use 端口 67 被占用
No subnet declaration 网卡 IP 不在 subnet 内

三、端口被占用(67/UDP)

如果系统里同时有:

  • dnsmasq
  • systemd-networkd DHCP
  • 其他 DHCP 服务

会冲突。

检查:

sudo ss -ulnp | grep :67

解决:

sudo systemctl disable dnsmasq
sudo systemctl stop dnsmasq

四、防火墙 / 网络问题

1️⃣ 防火墙阻止 DHCP

DHCP 使用:

  • UDP 67(服务器)
  • UDP 68(客户端)

临时关闭测试:

sudo ufw disable

或放行:

sudo ufw allow 67/udp

五、IPv6 相关(可选)

如果你只使用 IPv4,但系统尝试启动 IPv6 DHCP:

sudo systemctl status isc-dhcp-server6

可以禁用:

sudo systemctl disable isc-dhcp-server6

六、快速自检清单 ✅

# 1. 检查服务名
systemctl start isc-dhcp-server

# 2. 检查配置语法
dhcpd -t

# 3. 检查监听网卡
cat /etc/default/isc-dhcp-server

# 4. 检查网卡 IP
ip a

# 5. 查看错误原因
journalctl -u isc-dhcp-server -xe

七、如果你愿意,我可以直接帮你定位

你可以把下面信息贴出来(脱敏即可):

  1. journalctl -u isc-dhcp-server -xe 的最后 20 行
  2. /etc/dhcp/dhcpd.conf
  3. ip a
  4. /etc/default/isc-dhcp-server

我可以直接告诉你改哪一行就能启动成功

0