在Linux系统中配置DHCP(动态主机配置协议)服务器,可以为局域网中的自动分配IP地址、子网掩码、网关、DNS等网络参数,简化网络管理,以下是详细的配置步骤和说明,以常见的DHCP服务器软件包dhcpd为例展开。

安装DHCP服务器软件
首先需要确保系统已安装dhcpd服务,在基于Debian/Ubuntu的系统中,使用以下命令安装:
sudo apt update sudo apt install iscdhcpserver
在基于RHEL/CentOS的系统中,使用:
sudo yum install dhcpd
安装完成后,dhcpd服务默认不会自动启动,需手动启用:
sudo systemctl enable iscdhcpserver # Debian/Ubuntu sudo systemctl enable dhcpd # RHEL/CentOS
配置DHCP服务器核心文件
dhcpd的主配置文件通常位于/etc/dhcp/dhcpd.conf(Debian/Ubuntu)或/etc/dhcpd.conf(RHEL/CentOS),以下是配置文件的关键参数说明及示例:
全局参数配置
在配置文件开头,可以设置默认租约时间、最大租约时间等全局参数:

defaultleasetime 600; # 默认租约时间(秒) maxleasetime 7200; # 最大租约时间(秒) authoritative; # 声明该DHCP服务器是权威的,避免网络中其他DHCP服务器干扰
子网配置
为核心网络段定义地址池,为168.1.0/24网段配置DHCP服务:
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 domainnameservers 8.8.8.8, 8.8.4.4; # DNS服务器
option subnetmask 255.255.255.0; # 子网掩码
}
静态地址分配
为特定设备(如服务器、打印机)固定IP地址,通过MAC地址绑定实现:
host server01 {
hardware ethernet 00:1A:2B:3C:4D:5E; # 设备MAC地址
fixedaddress 192.168.1.50; # 分配的静态IP
}
多子网配置
若需支持多个网段,可重复添加subnet块,为168.2.0/24配置:
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200;
option routers 192.168.2.1;
option domainnameservers 114.114.114.114;
}
配置DHCP服务监听接口
默认情况下,dhcpd会监听所有网络接口,若需指定特定接口(如eth0),需修改配置文件:
- Debian/Ubuntu:编辑
/etc/default/iscdhcpserver,修改INTERFACESv4参数:INTERFACESv4="eth0"
- RHEL/CentOS:编辑
/etc/sysconfig/dhcpd,添加DHCPDARGS参数:DHCPDARGS=eth0
启动并测试服务
配置完成后,启动DHCP服务并检查状态:

sudo systemctl restart iscdhcpserver # 或 dhcpd sudo systemctl status iscdhcpserver
在客户端设备上,通过ipconfig /renew(Windows)或dhclient eth0(Linux)请求IP地址,使用ipconfig /all(Windows)或ip a(Linux)验证是否成功获取配置。
常见配置问题排查
- 地址池耗尽:若
range设置的IP不足,需扩大范围或调整静态分配地址。 - 服务未启动:检查防火墙规则(如
ufw或firewalld)是否阻止UDP 67端口(DHCP服务端口)。 - 配置语法错误:使用
sudo dhcpd t(Debian/Ubuntu)或sudo dhcpd t(RHEL/CentOS)检查配置文件语法。
配置文件参数速查表
| 参数 | 说明 | 示例 |
|---|---|---|
subnet |
定义网段 | subnet 192.168.1.0 netmask 255.255.255.0 { ... } |
range |
可分配IP范围 | range 192.168.1.100 192.168.1.200; |
option routers |
默认网关 | option routers 192.168.1.1; |
option domainnameservers |
DNS服务器 | option domainnameservers 8.8.8.8; |
hardware ethernet |
设备MAC地址 | hardware ethernet 00:1A:2B:3C:4D:5E; |
fixedaddress |
静态IP | fixedaddress 192.168.1.50; |
defaultleasetime |
默认租约(秒) | defaultleasetime 600; |
相关问答FAQs
Q1: 如何查看DHCP服务器已分配的租约信息?
A1: 可通过查看DHCP租约文件获取信息,在Debian/Ubuntu中,文件路径为/var/lib/dhcp/dhcpd.leases;在RHEL/CentOS中为/var/lib/dhcpd/dhcpd.leases,使用命令cat /var/lib/dhcp/dhcpd.leases查看,其中包含客户端MAC地址、分配的IP、租约开始/结束时间等。
Q2: 客户端无法获取IP地址,如何排查?
A2: 首先检查服务状态(systemctl status iscdhcpserver),确认服务正常运行,使用tail f /var/log/syslog(Debian/Ubuntu)或tail f /var/log/messages(RHEL/CentOS)查看DHCP服务日志,定位错误信息(如地址池耗尽、接口未绑定等),检查客户端是否启用了DHCP服务,以及网络连接是否正常。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/314293.html