温馨提示×

linux dhcp怎样排查

小樊
45
2026-09-25 01:01:37
栏目: 智能运维

在 Linux 下排查 DHCP 问题,可以按“由下到上、由客户端到服务端”的思路来。下面给你一套实战排查清单。


一、确认网卡和链路状态(最基础)

ip addr
ip link

重点看:

  • 网卡是否 UP
  • 是否有 MAC 地址
  • 是否插好网线(如果是物理机)

查看链路层:

ethtool eth0

(看 Link detected: yes)


二、确认 DHCP 客户端是否在运行

常见 DHCP 客户端

  • dhclient
  • NetworkManager
  • systemd-networkd

查看进程

ps aux | grep -E 'dhclient|NetworkManager|systemd-networkd'

三、手动发起 DHCP 请求(非常关键)

用 dhclient 测试

dhclient -v eth0

观察输出:

  • 是否发送 DHCPDISCOVER
  • 是否收到 DHCPOFFER
  • 是否完成 DHCPACK

释放后再请求:

dhclient -r eth0
dhclient -v eth0

四、检查是否拿到了 IP

ip addr show eth0

或:

ifconfig eth0

看是否有:

  • inet 地址
  • 子网掩码
  • 默认网关

五、检查路由和 DNS

路由

ip route

应有类似:

default via 192.168.1.1 dev eth0

DNS

cat /etc/resolv.conf

应有:

nameserver 192.168.1.1

六、抓包看 DHCP 交互(最强手段)

tcpdump -i eth0 port 67 or port 68 -nn

你应该看到:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPREQUEST
  • DHCPACK

如果只有 DISCOVER 没有 OFFER:

  • DHCP 服务器没响应
  • 网络隔离 / VLAN 问题
  • 防火墙拦截

七、服务端排查(如果你是 DHCP Server)

常见服务

  • isc-dhcp-server
  • dnsmasq
  • kea-dhcp

检查服务状态

systemctl status isc-dhcp-server
journalctl -u isc-dhcp-server -f

检查配置

cat /etc/dhcp/dhcpd.conf

确认:

  • subnet 正确
  • range 正确
  • 网卡监听正确

八、常见坑点总结

✅ 网卡没 UP
✅ 防火墙拦了 67/68
✅ VLAN / 交换机未放行 DHCP
✅ NetworkManager 和 dhclient 冲突
✅ 多网卡导致默认路由错误
✅ DHCP 地址池耗尽


九、快速定位流程(速查)

  1. ip addr → 有 IP 吗?
  2. dhclient -v → 能拿到吗?
  3. tcpdump → 服务器回包吗?
  4. 服务端日志 → 有分配记录吗?

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

  • 你是 客户端还是服务器
  • 用的 什么发行版
  • 具体 现象(拿不到 IP / 慢 / 随机掉)

我可以直接帮你定位。

0 踩