在开始搭建前,需确认以下事项:
eth0或ens33,需与后续配置一致)。根据Linux发行版选择对应安装命令:
sudo apt update && sudo apt install isc-dhcp-server -y
sudo yum install dhcp -y
sudo dnf install dhcp-server -y
安装完成后,软件包会自动部署基础文件(如配置文件、服务脚本)。
DHCP核心配置文件路径为/etc/dhcp/dhcpd.conf,使用文本编辑器(如nano)打开:
sudo nano /etc/dhcp/dhcpd.conf
删除原有注释和示例,替换为以下基础配置(按需修改参数):
# 全局默认设置
default-lease-time 600; # 默认租约时间(秒,10分钟)
max-lease-time 7200; # 最大租约时间(秒,2小时)
# 子网配置(根据实际网络调整)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 可分配IP池
option routers 192.168.1.1; # 默认网关
option subnet-mask 255.255.255.0; # 子网掩码
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
option broadcast-address 192.168.1.255; # 广播地址(可选)
}
若需为某台设备(如打印机、服务器)固定分配IP,可添加host块:
host printer {
hardware ethernet 00:1A:2B:3C:4D:5E; # 设备MAC地址
fixed-address 192.168.1.50; # 固定分配的IP
option hostname "office-printer"; # 主机名(可选)
}
编辑接口配置文件,确保DHCP服务仅监听所需网络接口(避免不必要的流量):
编辑/etc/default/isc-dhcp-server,修改INTERFACESv4:
INTERFACESv4="eth0" # 替换为你的网络接口名称(如ens33)
编辑/etc/sysconfig/dhcpd,修改INTERFACES:
INTERFACES="eth0" # 替换为你的网络接口名称
根据发行版执行对应命令:
# Debian/Ubuntu
sudo systemctl start isc-dhcp-server
# CentOS/RHEL/Fedora
sudo systemctl start dhcpd
# Debian/Ubuntu
sudo systemctl enable isc-dhcp-server
# CentOS/RHEL/Fedora
sudo systemctl enable dhcpd
确认服务是否运行正常:
# Debian/Ubuntu
sudo systemctl status isc-dhcp-server
# CentOS/RHEL/Fedora
sudo systemctl status dhcpd
若显示“active (running)”,则表示服务已启动。
DHCP服务依赖**UDP 67(服务器)和UDP 68(客户端)**端口,需允许防火墙放行:
sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo ufw reload
sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --reload
通过日志确认DHCP服务是否正常分配IP:
sudo tail -f /var/log/syslog | grep dhcpd # Debian/Ubuntu
sudo tail -f /var/log/messages | grep dhcpd # CentOS/RHEL
若出现“DHCPACK”字样,表示已成功分配IP。
将客户端设备(如电脑、手机)连接到同一网络,设置其为“自动获取IP地址”,然后检查是否获取到192.168.1.100-200范围内的IP,并验证网关、DNS是否正确。
dhcpd.conf前,建议备份:sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
range)与静态IP地址(如服务器、路由器)不重叠。dhcpd.conf中添加多个subnet块,每个块对应不同的网络段。