上一篇
Linux如何配置DHCP服务器?
- Linux
- 2025-07-03
- 4167
安装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协议标准)