必须先为Linux服务器配置静态IP,再安装isc-dhcp-server、编辑/etc/dhcp/dhcpd.conf定义子网范围和网关DNS、指定INTERFACESv4接口名,最后通过dhcpd -t验证语法并systemctl启动服务。

要在Linux上快速搭建一个仅用于家庭或实验室内网的DHCP服务器,必须绕过复杂的企业级配置,直击核心:让局域网设备一连即得IP、网关和DNS,且不依赖路由器自带DHCP功能。整个过程需确保服务器自身使用静态IP,否则服务启动会失败——一个靠DHCP获取地址的DHCP服务器,根本无法响应广播请求。
安装DHCP服务程序
打开终端,执行以下命令更新软件源并安装isc-dhcp-server:
sudo apt update && sudo apt install isc-dhcp-server -y
安装完成后,系统不会自动启动服务,因为此时配置文件为空,强行启动会报错退出。这一步只是把二进制和默认路径部署到位,为后续配置打下基础。
配置DHCP作用域与网络参数
用nano编辑主配置文件:
sudo nano /etc/dhcp/dhcpd.conf
清空原文件内容,写入以下最小可用配置(请将192.168.1.0和enp3s0替换为你实际的内网子网和网卡名):
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 1.1.1.1, 8.8.8.8;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
}
注意:这里没有定义全局domain-name或log-facility,因内网简单场景无需域名解析和集中日志;【range起始地址必须高于服务器自身IP,否则可能分配冲突】。例如服务器IP是192.168.1.10,则range从100开始是安全的。
指定DHCP监听的物理接口
系统必须明确知道DHCP服务绑定在哪张网卡上,否则dhcpd启动时找不到合法子网声明,直接退出。
编辑接口配置文件:
sudo nano /etc/default/isc-dhcp-server
找到INTERFACESv4这一行,修改为你的内网网卡名,例如:
INTERFACESv4="enp3s0"
如何确认网卡名?运行ip -br addr,找状态UP且有内网IP(非127.0.0.1或169.254.x.x)的接口。常见名称有ens33、eth0、enp0s3等,【绝不能填错,填错会导致服务无法绑定端口67】。
验证配置并启动服务
第一步:语法检查,避免配置错误导致服务崩溃:
sudo dhcpd -t
若输出“Syntax OK”,说明配置无硬性错误;若报错,返回上一步修改dhcpd.conf。
第二步:手动以前台模式运行一次,观察实时日志输出:
sudo dhcpd -f -d enp3s0
看到“Listening on LPF/enp3s0/xx:xx:xx:xx:xx:xx”即表示已成功监听。按Ctrl+C停止。
第三步:启用并启动服务:
sudo systemctl enable isc-dhcp-server && sudo systemctl start isc-dhcp-server
检查状态是否active (running):
sudo systemctl status isc-dhcp-server


















