温馨提示×

linux dhcp怎样排查错

小樊
39
2026-09-27 22:39:31
栏目: 智能运维

在 Linux 下排查 DHCP 问题,可以从客户端和服务端两个方向入手。下面按常见场景给你一个系统性的排查思路。


一、客户端无法获取 IP(最常见)

1. 确认网卡状态

ip addr
ip link
  • 网卡是否 UP
  • 是否连接网线 / Wi‑Fi
ip link set eth0 up

2. 手动发起 DHCP 请求

dhclient -v eth0

或(部分系统)

dhcpcd -d eth0

观察输出:

  • 是否发送 DHCPDISCOVER
  • 是否收到 DHCPOFFER

3. 查看系统日志

journalctl -u NetworkManager
journalctl -u dhclient

或

dmesg | grep eth0

常见错误:

  • No DHCPOFFERS received
  • DHCPNAK from server

4. 检查防火墙

DHCP 使用:

  • UDP 67(服务端)
  • UDP 68(客户端)
iptables -L -n
nft list ruleset

确保没有丢弃 67/68 端口。


5. 检查 NetworkManager / systemd-networkd

nmcli device status
cat /etc/NetworkManager/NetworkManager.conf

如果是 systemd-networkd:

networkctl status eth0

二、DHCP 服务端问题(dhcpd / dnsmasq)

1. 服务是否运行

systemctl status isc-dhcp-server
systemctl status dnsmasq

2. 配置文件检查

ISC DHCP

cat /etc/dhcp/dhcpd.conf

常见错误:

  • subnet 写错
  • 未声明 range
  • 网卡未在 INTERFACES 中

测试配置:

dhcpd -t

3. 监听情况

ss -lunp | grep 67

应看到:

*:67

4. 服务端日志

journalctl -u isc-dhcp-server
tail -f /var/log/syslog

三、网络层问题(容易被忽略)

1. VLAN / 桥接

bridge link
ip -d link show

DHCP 必须在正确 VLAN / 桥接接口上。


2. 跨网段 DHCP(DHCP Relay)

如果客户端和服务端不在同一网段:

  • 需配置 dhcrelay
  • 或交换机开启 DHCP Relay

3. 地址池耗尽

cat /var/lib/dhcp/dhcpd.leases

看是否有可用 IP。


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

✅ 网卡 UP
✅ 防火墙放行 67/68
✅ dhclient 能发请求
✅ 服务端在运行
✅ 配置文件正确
✅ 日志无报错


如果你能告诉我:

  • 用的发行版(Ubuntu / CentOS / Rocky 等)
  • DHCP 客户端还是服务端
  • 具体报错信息

我可以给你更精准的命令和解决方案。

0 踩