温馨提示×

debian dhcp怎么排查故障

小樊
42
2026-09-10 20:14:33
栏目: 智能运维

在 Debian 上排查 DHCP 故障,通常分 服务器端(DHCP Server) 和 客户端(获取不到 IP) 两类。下面按常见场景给你一套系统排查思路。


一、确认你用的是哪种 DHCP 组件

Debian 常见 DHCP 软件:

  • ISC DHCP Server:isc-dhcp-server
  • Kea DHCP(新趋势):kea
  • DNSMasq(轻量):dnsmasq
  • 客户端一般用:dhclient 或 systemd-networkd

先确认:

dpkg -l | grep -E "isc-dhcp-server|kea|dnsmasq"

二、DHCP 服务端排查(Debian 作为服务器)

1. 服务是否运行

systemctl status isc-dhcp-server
# 或
systemctl status kea-dhcp4-server

没运行的话:

journalctl -xeu isc-dhcp-server

2. 配置文件是否正确

ISC DHCP 主配置:

/etc/dhcp/dhcpd.conf

常见错误:

  • 子网(subnet)和接口 IP 不匹配
  • 忘记写 range
  • 语法错误

检查语法:

dhcpd -t

3. 监听接口是否正确

ISC DHCP:

/etc/default/isc-dhcp-server

确认:

INTERFACESv4="eth0"

4. 防火墙是否挡了 DHCP

DHCP 用:

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

检查:

iptables -L -n -v | grep -E "67|68"

临时放行:

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

5. 抓包看有没有请求

tcpdump -i eth0 udp port 67 or udp port 68
  • 有 DISCOVER 没 OFFER → 服务器问题
  • 完全没有 DISCOVER → 网络/客户端问题

三、DHCP 客户端排查(Debian 获取不到 IP)

1. 接口是否 UP

ip addr
ip link

如果 DOWN:

ip link set eth0 up

2. 手动发起 DHCP 请求

dhclient -v eth0

看输出有没有:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPACK

3. 检查网络配置方式

Debian 12 常用:

  • /etc/network/interfaces
  • systemd-networkd
  • NetworkManager

interfaces 示例

auto eth0
iface eth0 inet dhcp

应用:

ifdown eth0; ifup eth0

4. 看客户端日志

journalctl -u dhclient
# 或
journalctl -f

5. 抓包确认请求是否发出

tcpdump -i eth0 udp port 68

四、常见典型故障总结

现象 可能原因
一直 DHCPDISCOVER 服务器没响应 / 网段不对
有 OFFER 但没 ACK 地址冲突 / 配置错误
获取的是 169.254.x.x DHCP 彻底失败(APIPA)
虚拟机拿不到 IP 桥接 / NAT 设置错误
VLAN 环境异常 DHCP 中继未配置

五、快速排查清单(建议保存)

ip addr
ping 网关
systemctl status isc-dhcp-server
dhcpd -t
tcpdump -i eth0 udp port 67
dhclient -v eth0

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

  • Debian 版本(cat /etc/os-release)
  • 是服务器还是客户端
  • 物理机 / 虚拟机 / 容器
  • 报错日志或 tcpdump 输出

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

0 踩