温馨提示×

如何测试Debian DHCP服务

小樊
41
2026-08-15 00:03:52
栏目: 智能运维

测试 Debian 上的 DHCP 服务 可以从 服务端客户端 两个角度进行。下面按常见场景一步步说明。


一、确认 DHCP 服务是否安装并运行(服务端)

Debian 常用 DHCP 服务为 ISC DHCP Serverisc-dhcp-server)。

1. 检查是否安装

dpkg -l | grep isc-dhcp-server

未安装则安装:

sudo apt update
sudo apt install isc-dhcp-server

2. 检查服务状态

sudo systemctl status isc-dhcp-server

正常应看到 active (running)

启动 / 重启 / 开机自启:

sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server

3. 检查配置文件

主配置文件:

sudo nano /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;
}

检查监听网卡:

sudo nano /etc/default/isc-dhcp-server

例如:

INTERFACESv4="eth0"

4. 检查配置语法

sudo dhcpd -t

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


二、测试 DHCP 服务是否正常工作

✅ 方法一:在客户端使用 DHCP 自动获取 IP(最常用)

方法 1:使用 dhclient

在客户端机器执行:

sudo dhclient -v eth0

参数说明:

  • -v:显示详细过程
  • eth0:网卡名(用 ip a 查看)

如果成功,你会看到类似:

DHCPDISCOVER on eth0
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth0
DHCPACK from 192.168.1.1
bound to 192.168.1.101

方法 2:重启网络接口

sudo ifdown eth0 && sudo ifup eth0

✅ 方法二:查看 DHCP 租约文件(验证服务端)

在 DHCP 服务器上查看:

sudo cat /var/lib/dhcp/dhcpd.leases

你应能看到类似:

lease 192.168.1.101 {
  starts 1 2026/01/01 10:00:00;
  ends 1 2026/01/01 11:00:00;
  hardware ethernet 52:54:00:xx:xx:xx;
}

✅ 方法三:使用 tcpdump 抓包(高级验证)

在 DHCP 服务器上:

sudo tcpdump -i eth0 port 67 or port 68

客户端执行:

sudo dhclient eth0

应能看到:

  • DHCPDISCOVER
  • DHCPOFFER
  • DHCPREQUEST
  • DHCPACK

三、常见问题排查

1. 客户端获取不到 IP

检查:

  • 服务端是否运行
  • 子网配置是否正确
  • 防火墙是否放行 UDP 67/68
sudo ufw status

允许 DHCP:

sudo ufw allow from any to any port 67 proto udp
sudo ufw allow from any to any port 68 proto udp

2. 多网卡时 DHCP 不响应

确认监听接口:

INTERFACESv4="eth0"

3. 日志查看

sudo journalctl -u isc-dhcp-server

或:

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

四、简单总结流程

安装 isc-dhcp-server
↓
配置 /etc/dhcp/dhcpd.conf
↓
指定监听网卡
↓
启动 isc-dhcp-server
↓
客户端执行 dhclient
↓
查看租约 / 抓包确认

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

  • 你是 测试真机 / 虚拟机 / 容器
  • 是否 跨子网(需 DHCP 中继)
  • Debian 版本(10 / 11 / 12)

我可以给你更精确的测试方案。

0