温馨提示×

debian dhcp为何启动失败

小樊
49
2026-09-29 00:32:23
栏目: 智能运维

在 Debian 上 DHCP 启动失败(通常是 isc-dhcp-server 或系统里的 DHCP 客户端 dhclient)原因很多,下面按最常见原因 + 排查方式给你一个系统性说明。


一、先确认你说的是哪种“DHCP”

1️⃣ DHCP 服务端启动失败(最常见)

一般是:

systemctl status isc-dhcp-server

2️⃣ DHCP 客户端失败(网卡拿不到 IP)

通常是:

dhclient eth0

下面以 DHCP 服务端 为主说明(客户端问题在最后补)。


二、DHCP 服务端启动失败的常见原因

✅ 1. 配置文件语法错误(最常见)

配置文件:

/etc/dhcp/dhcpd.conf

检查:

dhcpd -t

常见错误:

  • 少分号 ;
  • subnet 写错
  • 缺少 option routers
  • 括号不匹配

✅ 正确示例:

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;
}

✅ 2. 没有配置监听网卡(极易忽略)

Debian 默认 不会自动监听所有网卡

配置文件:

/etc/default/isc-dhcp-server

确保有:

INTERFACESv4="eth0"

否则会直接启动失败。


✅ 3. 监听网卡没有 IP 地址

DHCP 要求:

子网必须和网卡 IP 在同一网段

例如:

  • 网卡是 192.168.2.1
  • dhcpd.conf 写的是 192.168.1.0/24

❌ 直接失败

检查:

ip addr

✅ 4. 端口 67 被占用

可能冲突:

  • dnsmasq
  • systemd-networkd
  • 另一个 dhcpd

查看:

ss -lunp | grep :67

✅ 5. 目录下没有 lease 文件

错误示例:

Can't open /var/lib/dhcp/dhcpd.leases

解决:

touch /var/lib/dhcp/dhcpd.leases
chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases

✅ 6. AppArmor 限制(Debian 常见)

查看日志:

journalctl -xe

如果有 apparmor 拒绝:

apparmor="DENIED"

可临时测试:

aa-complain /usr/sbin/dhcpd

三、日志怎么看(关键)

journalctl -u isc-dhcp-server -xe

或者直接运行:

/usr/sbin/dhcpd -d -f

前台运行,错误非常直观。


四、DHCP 客户端(dhclient)失败原因

  • 网卡没 up
ip link set eth0 up
  • NetworkManager 冲突
  • 配置写死静态 IP
  • 交换机/VLAN 问题

查看:

journalctl -u NetworkManager

五、快速自查清单 ✅

  • [ ] dhcpd -t 无报错
  • [ ] /etc/default/isc-dhcp-server 配置了网卡
  • [ ] 网卡 IP 在 subnet 内
  • [ ] 67 端口没被占用
  • [ ] lease 文件存在
  • [ ] 日志无 apparmor 拒绝

如果你愿意,可以把下面内容贴出来,我可以精准帮你定位:

journalctl -u isc-dhcp-server
cat /etc/dhcp/dhcpd.conf
ip addr

我可以一步一步帮你改到能跑。

0 踩