阅读量:1
CentOS DHCP 故障排查步骤
一 快速定位思路
- 明确角色:是排查 DHCP 客户端(拿不到 IP)还是 DHCP 服务器(不分配 IP)。
- 分层检查:物理/虚拟连线 → 接口与配置 → 服务与日志 → 防火墙/网络策略 → 地址池与冲突。
- 先易后难:先看接口是否 UP、是否配置为 BOOTPROTO=dhcp,再用 dhclient 触发一次完整握手,最后看 日志/抓包 定位握手是否到达服务器。
二 客户端排查
- 查看接口与链路状态
- 执行:
ip -br link、ip addr show(如 ens33)。若状态为 DOWN,执行:ip link set。up
- 执行:
- 核对网卡配置文件
- 文件路径:
/etc/sysconfig/network-scripts/ifcfg-(或对应网络管理方式下的等效配置)。 - 关键项:
BOOTPROTO=dhcp、ONBOOT=yes。修改后重启网络或 NetworkManager:systemctl restart NetworkManager或systemctl restart network。
- 文件路径:
- 手动触发 DHCP 并观察握手
- 释放与获取:
dhclient -r;dhclient -4 -v(加 -v 可见 Discover/Offer/Request/ACK 过程)。 - 若长时间卡在 DHCPDISCOVER 无回应,通常是网络不通、无 DHCP 服务器、或防火墙阻断。
- 释放与获取:
- 检查租约与日志
- 查看租约:
cat /var/lib/dhcp/dhclient.leases,确认是否有有效租约与服务器 IP。 - 查看系统日志:
journalctl -xe | grep -i dhcp或tail -f /var/log/messages | grep -i dhcp。
- 查看租约:
- 虚拟机场景专项
- 确认虚拟网卡已“连接”,网络模式为 NAT/桥接 且已重启生效;若仍无 IPv4,回到上面步骤再验证一次。
三 服务器排查
- 安装与配置
- 安装:
yum install -y dhcp(或dnf install dhcp)。 - 主配置:
/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, 8.8.4.4; }
- 安装:
- 指定监听接口
- 编辑:
/etc/sysconfig/dhcpd,设置INTERFACES="eth0"(示例),保存后重启服务。
- 编辑:
- 启动与开机自启
systemctl start dhcpd、systemctl enable dhcpd。
- 服务状态与端口
- 状态:
systemctl status dhcpd(失败时用journalctl -xe看语法/权限/接口绑定错误)。 - 端口:确认 UDP 67 监听,例如
ss -lunpt | grep :67或netstat -anpu | grep :67。
- 状态:
- 日志与租约
- 服务器日志:
tail -f /var/log/messages | grep -i dhcpd。 - 租约文件:
cat /var/lib/dhcp/dhcpd.leases,核对是否分配出地址、租约时间是否合理。
- 服务器日志:
- 防火墙与网络策略
- 放行 DHCP:
firewall-cmd --permanent --add-service=dhcp && firewall-cmd --reload(或临时关闭防火墙验证)。
- 放行 DHCP:
四 常见现象与处理对照表
| 现象 | 快速检查 | 处理建议 |
|---|---|---|
| 客户端一直卡在 DHCPDISCOVER | dhclient -4 -v 无 Offer;ip link 是否 DOWN;虚拟机网络模式 |
确认接口 UP;改为 NAT/桥接 并重启;检查上游是否有 DHCP 服务器 |
| 获取到 IP 过一段时间又丢失 | ip addr 周期性掉 IP;journalctl 无持续错误 |
排查是否有其他 DHCP 服务器冲突;检查租约时间与地址池;核对 NetworkManager/网络脚本反复覆盖 |
| 服务器启动失败 | systemctl status dhcpd 报错;journalctl -xe |
检查 /etc/dhcp/dhcpd.conf 语法与作用域网段;核对 /etc/sysconfig/dhcpd 的监听接口 |
| 端口 67 未监听 | `ss -lunpt | grep :67` 无输出 |
| 虚拟机拿不到 IPv4 | 仅 IPv6 链路本地;ifcfg- 配置 |
确认 BOOTPROTO=dhcp、ONBOOT=yes;接口拉起;网络模式与连线正确 |
| 地址冲突或租约异常 | cat /var/lib/dhcp/dhcpd.leases 重复 IP;客户端频繁换 IP |
核对 range 与网关/DNS;清理异常租约;必要时为关键主机配置 host 静态映射 |
五 高效命令清单
- 客户端
ip -br link、ip addr show、ip routedhclient -r、dhclient -4 -vcat /var/lib/dhcp/dhclient.leasesjournalctl -xe | grep -i dhcp
- 服务器
systemctl status dhcpd、journalctl -xe -u dhcpdss -lunpt | grep :67或netstat -anpu | grep :67cat /var/lib/dhcp/dhcpd.leasesfirewall-cmd --list-services | grep dhcp或firewall-cmd --permanent --add-service=dhcp && firewall-cmd --reload
- 抓包定位(两端都可)
tcpdump -i(看到 Discover/Offer/Request/ACK 即可确认握手是否完成)-nn port 67 or port 68 -vv
以上就是关于“centos dhcp如何排查故障问题”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm