温馨提示×

debian dhcp怎样排除故障

小樊
43
2026-10-10 18:28:27
栏目: 智能运维

在 Debian 上排查 DHCP 故障,可以按「客户端 / 服务器端」分别处理。下面给你一套实用排查流程。


一、先确认是哪种 DHCP 问题

  • 客户端拿不到 IP(DHCP 客户端问题)
  • 服务器不分配 IP(DHCP 服务端问题,如 isc-dhcp-server)
  • 分配了 IP 但网络不通(路由 / 防火墙 / 配置问题)

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

1. 查看网络接口状态

ip addr
ip link

确认网卡是 UP 状态。

2. 手动请求 DHCP(调试最有用)

sudo dhclient -v eth0

或(新版本):

sudo dhclient -v <接口名>

观察是否有:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPREQUEST
  • DHCPACK

如果卡在 DHCPDISCOVER,说明:

  • 网络不通
  • 服务端没响应
  • 防火墙拦截

3. 查看系统日志

journalctl -u networking
journalctl -u dhclient

或传统方式:

tail -f /var/log/syslog

4. NetworkManager 情况

如果用 NetworkManager:

nmcli device status
nmcli connection show

重新激活:

nmcli connection down <连接名>
nmcli connection up <连接名>

三、DHCP 服务器端排查(isc-dhcp-server)

1. 服务是否运行

systemctl status isc-dhcp-server

没启动常见原因:

  • 配置文件错误
  • 监听网卡不对

2. 配置文件检查

sudo dhcpd -t

无输出 = 配置语法 OK

常见文件:

/etc/dhcp/dhcpd.conf
/etc/default/isc-dhcp-server

/etc/default/isc-dhcp-server 示例:

INTERFACESv4="eth0"

3. 接口是否在 subnet 中

例如:

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;
}

如果 eth0 不在该网段,DHCP 不会工作。

4. 查看服务端日志

tail -f /var/log/syslog

常见错误:

  • No subnet declaration
  • Address already in use
  • Interface not configured

5. 防火墙问题

确保 UDP 67 / 68 放行:

sudo ufw allow 67/udp
sudo ufw allow 68/udp

四、跨网段 DHCP(DHCP Relay)

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

  • 需要 dhcrelay
  • 或交换机启用 DHCP Relay / IP Helper

检查:

systemctl status dhcrelay

五、快速排错清单(✅)

  • [ ] 网卡 UP
  • [ ] 客户端能 ping 通 DHCP 服务器
  • [ ] 服务端监听正确接口
  • [ ] subnet 配置正确
  • [ ] 防火墙未拦截 UDP 67/68
  • [ ] 日志无报错

六、常见故障一句话总结

  • 一直 DHCPDISCOVER:网络/防火墙/服务端没响应
  • DHCPOFFER 但无 ACK:地址冲突或配置错误
  • 拿到 IP 不能上网:网关/DNS 配置问题

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

  1. 你是客户端还是服务器问题
  2. Debian 版本(cat /etc/debian_version)
  3. 报错日志内容

我可以直接帮你定位具体原因。

0 踩