温馨提示×

debian dhcp怎样排查故障

小樊
47
2026-10-01 22:08:31
栏目: 智能运维

在 Debian 上排查 DHCP 故障,可以按客户端和服务器两类场景来定位。下面给你一套通用、实用的排查思路。


一、先明确你是哪一端

  • DHCP 客户端(机器获取 IP 失败)
  • DHCP 服务器(其他机器获取不到 IP)

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

1. 查看网络接口状态

ip addr
ip link

确认网卡是否 UP,有没有拿到 IP。

2. 手动请求 DHCP(最常用)

sudo dhclient -v eth0
  • -v 看详细过程
  • 换成你的网卡名(如 ens33)

如果失败,看输出里的:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPACK

3. 检查 DHCP 客户端服务

Debian 常用:

systemctl status networking
# 或
systemctl status dhclient

如果使用 NetworkManager:

systemctl status NetworkManager
nmcli device status

4. 检查配置文件

/etc/network/interfaces

auto eth0
iface eth0 inet dhcp

NetworkManager

nmcli connection show

5. 抓包看 DHCP 交互

sudo tcpdump -i eth0 port 67 or port 68

没看到 DHCPDISCOVER → 客户端问题
看到 DISCOVER 没 OFFER → 网络或服务器问题


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

1. 确认服务在跑

ISC DHCP:

systemctl status isc-dhcp-server

查看日志:

journalctl -u isc-dhcp-server

2. 配置文件检查

通常:

/etc/dhcp/dhcpd.conf

测试语法:

dhcpd -t

3. 确认监听接口

sudo netstat -anu | grep 67
# 或
ss -anu | grep 67

4. 防火墙问题(非常常见)

iptables -L -n
# 或 nft
nft list ruleset

需要放行:

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

5. 地址池耗尽

cat /var/lib/dhcp/dhcpd.leases

看是否 IP 已分配完。


四、跨网段 DHCP(中继场景)

如果是 VLAN / 不同网段:

  • 确认 dhcrelay 在跑
  • 路由器放行 DHCP
  • 服务器有对应 subnet 配置

五、最常见故障总结

现象 可能原因
一直 DISCOVER 没 OFFER 服务器没起 / 防火墙
OFFER 但没 ACK 地址冲突 / 配置错误
拿到 IP 但不能上网 网关 / DNS 配置错
偶尔失败 地址池不足

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

  • Debian 版本(cat /etc/debian_version)
  • 是客户端还是服务器
  • 具体报错或日志

我可以直接帮你定位。

0 踩