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