根据发行版选择对应软件包:
isc-dhcp-server),命令:sudo apt update && sudo apt install isc-dhcp-server;dhcp),命令:sudo yum install dhcp(CentOS 7/8)或 sudo dnf install dhcpserver(Fedora)。编辑主配置文件(路径因发行版而异),设置IP范围、路由、DNS等参数:
/etc/dhcp/dhcpd.conf,示例配置: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 domain-name-servers 8.8.8.8; # DNS服务器
default-lease-time 600; # 默认租约时间(秒)
max-lease-time 7200; # 最大租约时间(秒)
}
/etc/dnsmasq.conf,示例配置:interface=eth0 # 监听的网络接口
dhcp-range=192.168.1.10,192.168.1.100,255.255.255.0,12h # IP范围、子网掩码、租约时间
dhcp-option=option:router,192.168.1.1 # 默认网关
dhcp-option=option:dns-server,8.8.8.8 # DNS服务器
此外,需指定监听接口(避免暴露到不必要的网络):
/etc/default/isc-dhcp-server,设置INTERFACESv4="eth0";/etc/sysconfig/dhcpd,设置DHCPDARGS="eth0"。使用systemctl命令(现代Linux发行版通用):
sudo systemctl start isc-dhcp-server;sudo systemctl start dhcpd;sudo systemctl start dnsmasq。sudo systemctl enable isc-dhcp-server;sudo systemctl enable dhcpd;sudo systemctl enable dnsmasq。验证服务是否运行正常:
# ISC DHCP Server(Debian/Ubuntu)
sudo systemctl status isc-dhcp-server
# ISC DHCP Server(CentOS/RHEL)
sudo systemctl status dhcpd
# dnsmasq
sudo systemctl status dnsmasq
若显示“active (running)”,则表示服务已成功启动。
允许DHCP服务的UDP端口(67/68)通过防火墙,避免客户端无法获取IP:
sudo iptables -A INPUT -p udp --dport 67:68 -j ACCEPT;sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --reload
若系统未预装DHCP服务,需通过“添加/删除Windows组件”安装:
services.msc并回车,打开“服务”窗口;若网络中有Active Directory域控制器,DHCP服务器必须授权才能正常工作:
dhcpmgmt.msc);