一、安装Linux DHCP服务器软件
在Linux系统中,DHCP服务通常由ISC DHCP Server(isc-dhcp-server)提供。根据发行版选择对应命令安装:
isc-dhcp-server,命令为sudo apt update && sudo apt install isc-dhcp-server。yum(CentOS 7及以下)或dnf(CentOS 8及以上/RHEL 8及以上)安装,命令为sudo yum install dhcp或sudo dnf install dhcp。二、配置DHCP服务器核心参数
配置文件路径通常为/etc/dhcp/dhcpd.conf(Debian/Ubuntu)或/etc/dhcp/dhcpd.conf(CentOS/RHEL)。需设置以下关键参数:
option domain-name "example.com"; # 域名
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器(可多个,用逗号分隔)
default-lease-time 600; # 默认租约时间(秒,客户端首次获取IP的有效期)
max-lease-time 7200; # 最大租约时间(秒,客户端可续租的最长时间)
subnet 192.168.1.0 netmask 255.255.255.0 { # 子网(192.168.1.0/24)
range 192.168.1.10 192.168.1.100; # 可分配的IP地址范围
option routers 192.168.1.1; # 默认网关
option broadcast-address 192.168.1.255; # 广播地址
option domain-name-servers 8.8.8.8, 8.8.4.4; # 重复全局DNS设置(可选)
}
host printer { # 主机名(自定义)
hardware ethernet 00:1A:2B:3C:4D:5E; # 客户端MAC地址
fixed-address 192.168.1.50; # 分配的固定IP
}
配置完成后,建议备份原文件(sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak)。
三、指定DHCP监听接口
为了让DHCP服务器仅监听特定网络接口(避免不必要的流量),需修改接口配置文件:
/etc/default/isc-dhcp-server,修改INTERFACESv4为对应接口(如eth0、ens33),例如:INTERFACESv4="eth0" # 仅监听eth0接口
/etc/sysconfig/dhcpd,修改DHCPDARGS为对应接口,例如:DHCPDARGS="eth0" # 仅监听eth0接口
四、启动并启用DHCP服务
配置完成后,启动DHCP服务并设置为开机自启:
sudo systemctl start isc-dhcp-server # 启动服务
sudo systemctl enable isc-dhcp-server # 开机自启
sudo systemctl start dhcpd # 启动服务
sudo systemctl enable dhcpd # 开机自启
使用sudo systemctl status isc-dhcp-server(Debian/Ubuntu)或sudo systemctl status dhcpd(CentOS/RHEL)检查服务状态,若显示“active (running)”则表示启动成功。
五、验证DHCP服务功能
sudo tail -f /var/log/syslog(搜索“DHCPACK”表示成功分配);sudo tail -f /var/log/messages(搜索“DHCPACK”)。ip addr(Linux)或ipconfig(Windows)命令检查是否获取到DHCP服务器分配的IP地址(应在配置的地址池范围内,如192.168.1.10-192.168.1.100)。dhcping工具模拟DHCP请求,验证服务器响应,例如:sudo apt install dhcping # Debian/Ubuntu安装
sudo dhcping -c 4 192.168.1.1 # 向DHCP服务器(192.168.1.1)发送请求
若返回“Reply from 192.168.1.1”则表示服务正常。六、高级管理与安全配置
option dhcp-conflict-detect(默认开启),服务器分配IP前会发送ARP请求检测冲突,若冲突则重新分配。sudo ufw allow 67/udp、sudo ufw allow 68/udp;sudo firewall-cmd --permanent --add-service=dhcp、sudo firewall-cmd --reload。/var/lib/dhcp/dhcpd.leases文件(记录IP分配情况),可了解客户端获取IP的历史,例如:sudo tail -f /var/lib/dhcp/dhcpd.leases # 查看实时分配记录