温馨提示×

debian dhcp为何不分配IP

小樊
44
2026-09-07 21:59:10
栏目: 智能运维

在 Debian 上 DHCP 不分配 IP 通常有下面几类原因,可以按顺序排查。


一、DHCP 服务端(isc-dhcp-server)本身没正常工作

1. 服务没启动

systemctl status isc-dhcp-server

如果没跑:

systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server

2. 监听的网卡不对

Debian 默认只在指定网卡上服务:

nano /etc/default/isc-dhcp-server

确认:

INTERFACESv4="eth0"

(不要留空,也不要写错网卡名)

查看网卡名:

ip addr

二、DHCP 配置文件错误

1. 子网配置不匹配

cat /etc/dhcp/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;
  option domain-name-servers 8.8.8.8;
}

⚠️ 注意:

  • 子网必须和服务器网卡 IP 在同一网段
  • 否则 DHCP 直接不分配

2. 服务器网卡没有静态 IP

DHCP 服务器网卡必须有 IP:

ip addr show eth0

如果没有:

nano /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 192.168.1.1
    netmask 255.255.255.0

然后:

systemctl restart networking

三、防火墙阻断 DHCP

DHCP 用的是:

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

检查:

iptables -L -n

放开:

iptables -A INPUT -p udp --dport 67 -j ACCEPT

四、网络层问题(最常见被忽略)

1. 客户端不在同一广播域

  • 跨交换机/VLAN → 需要 DHCP Relay
  • 云服务器通常不支持 DHCP

2. 虚拟环境未桥接

KVM / VirtualBox:

  • 网卡模式必须是 bridge / bridged
  • NAT 模式下宿主机 DHCP 才可能生效

五、客户端问题

1. 客户端没开 DHCP

dhclient eth0

2. 旧 IP 冲突

ip addr flush dev eth0
dhclient eth0

六、快速排错命令

服务端看日志:

journalctl -u isc-dhcp-server -f

抓包(非常有用):

tcpdump -i eth0 port 67 or port 68

七、一句话总结

Debian DHCP 不分配 IP,90% 是:网卡写错 / 子网不对 / 服务器没静态 IP / 不在同一广播域

如果你愿意,可以把下面信息发我,我可以直接帮你定位:

  • /etc/dhcp/dhcpd.conf
  • /etc/default/isc-dhcp-server
  • ip addr
  • 客户端是什么(物理机 / 虚拟机 / 容器)

0 踩