温馨提示×

Debian如何验证DHCP服务

小樊
47
2026-08-26 05:58:17
栏目: 智能运维

在 Debian 系统中,验证 DHCP 服务是否正常工作,可以从服务器是否运行、是否分配地址、客户端是否能获取地址几个层次来检查。下面按常见场景说明。


一、验证 DHCP 服务器是否运行(以 ISC DHCP 为例)

1. 检查 DHCP 服务状态

systemctl status isc-dhcp-server

正常应看到 active (running)

重启/启动服务:

sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server

2. 检查监听端口

DHCP 使用 UDP 67(服务器)和 68(客户端)

ss -ulnp | grep 67

netstat -ulnp | grep 67

应看到类似:

UNCONDED 0 0 0.0.0.0:67 0.0.0.0:* users:(("dhcpd",pid=...,fd=...))

3. 检查配置文件是否正确

dhcpd -t

无输出通常表示配置语法正确。

配置文件位置:

/etc/dhcp/dhcpd.conf

二、验证 DHCP 是否分配地址

1. 查看 DHCP 租约文件

cat /var/lib/dhcp/dhcpd.leases

可以看到已分配的 IP、MAC、租期等信息:

lease 192.168.1.100 {
  starts 3 2026/01/21 10:00:00;
  ends 3 2026/01/21 11:00:00;
  hardware ethernet 00:11:22:33:44:55;
}

2. 查看服务器日志

journalctl -u isc-dhcp-server -f

tail -f /var/log/syslog | grep dhcp

常见成功日志:

DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPACK

三、在客户端验证 DHCP(Linux)

1. 使用 dhclient 测试

dhclient -v eth0

成功时会看到:

DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPACK

查看获取到的 IP:

ip addr show eth0

2. 查看客户端租约

cat /var/lib/dhcp/dhclient.leases

四、验证网络接口绑定是否正确(常见问题)

DHCP 服务器必须监听正确的接口

1. 检查接口配置

cat /etc/default/isc-dhcp-server

示例:

INTERFACESv4="eth0"

2. 接口必须有静态 IP

DHCP 服务器的接口不能是 DHCP 获取的 IP,例如:

ip addr show eth0

应为:

inet 192.168.1.1/24

五、使用 tcpdump 抓包验证(高级)

tcpdump -i eth0 port 67 or port 68 -n

客户端请求时应看到:

  • DHCP Discover
  • DHCP Offer
  • DHCP Request
  • DHCP ACK

六、快速自检清单 ✅

  • [ ] isc-dhcp-server 正在运行
  • [ ] UDP 67 端口监听
  • [ ] /etc/dhcp/dhcpd.conf 配置正确
  • [ ] 服务器接口有静态 IP
  • [ ] 客户端能获取 IP
  • [ ] /var/lib/dhcp/dhcpd.leases 有租约记录

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

  • DHCP 服务器 还是 DHCP 客户端
  • Debian 版本(11 / 12)
  • 是否有 多网卡 / 虚拟机 / 容器

我可以帮你按具体环境一步步排查。

0