温馨提示×

怎样排查Debian DHCP故障

小樊
49
2026-09-14 00:55:00
栏目: 智能运维

在 Debian 上排查 DHCP 故障,可以按**“客户端 → 服务端 → 网络链路”**的顺序系统排查。下面给出常见场景和对应排查方法。


一、确认你排查的是哪一端

  • DHCP 客户端问题(机器获取不到 IP)
  • DHCP 服务端问题(Debian 作为 DHCP 服务器,客户端拿不到 IP)

二、DHCP 客户端排查(Debian 作为客户端)

1. 检查网络接口状态

ip link
ip addr

确认网卡是 UP 状态,例如:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>

若未 UP:

sudo ip link set eth0 up

2. 手动请求 DHCP(推荐)

sudo dhclient -v eth0

观察输出是否有:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPREQUEST
  • DHCPACK

若无 DHCPOFFER,说明:

  • 网络不通
  • 无 DHCP 服务器
  • 被防火墙拦截

3. 检查 DHCP 客户端服务

Debian 通常使用:

  • ifupdown + dhclient
  • 或 NetworkManager
  • 或 systemd-networkd

查看:

systemctl status networking
systemctl status NetworkManager
systemctl status systemd-networkd

4. 检查 /etc/network/interfaces

示例(DHCP):

auto eth0
iface eth0 inet dhcp

修改后:

sudo ifdown eth0 && sudo ifup eth0

5. 抓包排查(非常关键)

sudo tcpdump -i eth0 port 67 or port 68

正常应看到:

  • 客户端发 DHCPDISCOVER
  • 服务器回 DHCPOFFER

三、DHCP 服务端排查(Debian 作 DHCP Server)

常用服务:isc-dhcp-server

1. 服务是否运行

systemctl status isc-dhcp-server

启动:

sudo systemctl start isc-dhcp-server

2. 配置文件检查

主配置:

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

检查语法:

sudo dhcpd -t

3. 确认监听接口

/etc/default/isc-dhcp-server

示例:

INTERFACESv4="eth0"

4. 查看日志

journalctl -u isc-dhcp-server

或:

tail -f /var/log/syslog

常见错误:

  • 地址池冲突
  • 子网未声明
  • 接口未指定

5. 防火墙检查

DHCP 使用:

  • UDP 67(服务器)
  • UDP 68(客户端)
sudo iptables -L

允许:

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

四、网络链路层面排查

  • 是否跨 VLAN(需 DHCP Relay / ip helper)
  • 交换机是否隔离广播
  • 虚拟机是否桥接正确
  • 物理线缆 / Wi-Fi 连接正常

五、快速排查清单(总结)

✅ 网卡 UP
✅ dhclient 能发 DISCOVER
✅ tcpdump 能看到 OFFER
✅ dhcpd 配置无误
✅ 服务正常运行
✅ 防火墙未拦截


如果你愿意,可以告诉我:

  • Debian 版本(11 / 12)
  • 是客户端还是服务器
  • 报错信息或日志内容

我可以帮你精准定位问题。

0 踩