上一篇
安装dhcpd或isc-dhcp-server软件包,编辑/etc/dhcp/dhcpd.conf配置文件定义子网、地址池和租期,启动dhcpd服务并设置开机自启,最后通过防火墙放行DHCP端口即可提供IP自动分配服务。
在Linux系统中配置DHCP服务器可为局域网设备自动分配IP地址,简化网络管理,以下是基于ISC DHCP Server(行业标准工具)的详细配置流程,适用于Debian/Ubuntu及RHEL/CentOS等主流发行版。
准备工作
-
系统要求
- 以root权限操作(使用
sudo -i或su -) - 确保服务器有静态IP(如
168.1.10),避免IP冲突 - 确认网卡名称(通过
ip a查看,例:eth0或ens33)
- 以root权限操作(使用
-
安装ISC DHCP Server
# Debian/Ubuntu sudo apt update && sudo apt install isc-dhcp-server -y # RHEL/CentOS sudo yum install dhcp-server -y
配置文件详解
主配置文件:/etc/dhcp/dhcpd.conf
用文本编辑器(如nano或vim)修改:
# 全局设置(适用于所有子网)
option domain-name "example.com"; # 域名
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
default-lease-time 600; # 默认租约时间(秒)
max-lease-time 7200; # 最大租约时间
# 定义子网(根据实际网络修改)
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 broadcast-address 192.168.1.255; # 广播地址
}
关键参数说明:
range:分配给客户端的IP地址范围routers:客户端默认网关domain-name-servers:DNS服务器(多个用逗号分隔)- 高级选项:可添加
host声明为特定设备保留固定IP
指定服务网卡
编辑服务启动配置文件:
# Debian/Ubuntu sudo nano /etc/default/isc-dhcp-server # 修改为: INTERFACESv4="eth0" # 替换为实际网卡名 # RHEL/CentOS sudo nano /etc/sysconfig/dhcpd # 修改为: DHCPDARGS="eth0" # 替换为实际网卡名
启动服务与防火墙
-
启动并设置开机自启
sudo systemctl start isc-dhcp-server # Debian/Ubuntu sudo systemctl start dhcpd # RHEL/CentOS sudo systemctl enable isc-dhcp-server # 或 dhcpd
-
开放防火墙端口
# UFW (Debian/Ubuntu) sudo ufw allow 67/udp # firewalld (RHEL/CentOS) sudo firewall-cmd --permanent --add-service=dhcp sudo firewall-cmd --reload
测试与验证
-
检查服务状态
sudo systemctl status isc-dhcp-server | grep active # 应显示 "active (running)"
-
查看租约记录
tail -f /var/lib/dhcp/dhcpd.leases # 实时监控分配的IP
-
客户端测试
- 将另一台设备设为自动获取IP
- 在客户端执行:
ip addr show # Linux客户端 ipconfig /all # Windows客户端
- 确认获取到配置范围内的IP(如
168.1.100)
故障排除
-
服务启动失败:
检查日志:journalctl -u isc-dhcp-server -xe
常见错误:配置文件语法错误(用dhcpd -t验证)、网卡未指定。 -
客户端无法获取IP:
- 确认服务器和客户端在同一局域网
- 检查防火墙是否拦截UDP 67端口
- 重启网络服务:
sudo systemctl restart networking
-
地址冲突:
缩小range范围,避开静态设备IP。
安全建议
- 限制地址池范围:仅分配必要数量的IP(如
range 192.168.1.100 192.168.1.150;)。 - MAC地址绑定:为关键设备固定IP:
host Printer { hardware ethernet aa:bb:cc:dd:ee:ff; fixed-address 192.168.1.50; } - 定期更新:保持系统与DHCP软件最新(
apt upgrade或yum update)。
通过ISC DHCP服务器,Linux可高效管理局域网IP分配,配置完成后,建议通过tcpdump抓包验证DHCP报文(sudo tcpdump -i eth0 port 67 -vv),对于复杂网络,可扩展配置选项(如IPv6支持或中继代理)。
引用说明:
- ISC DHCP官方文档:https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcpdconf
- Linux man pages:
man dhcpd.conf- 网络配置参考:RFC 2131 (DHCP协议标准)
