在Ubuntu系统中配置DHCP(动态主机配置协议)服务器可以让网络管理员自动为客户端设备分配IP地址、子网掩码、网关、DNS服务器等网络参数,简化网络管理并减少手动配置的错误,以下将详细介绍在Ubuntu上安装、配置和管理DHCP服务器的完整步骤,包括必要的前置条件、配置文件修改、常见问题排查以及相关FAQs。

前置条件与安装
在开始配置DHCP服务器之前,确保Ubuntu系统已更新至最新的软件包列表,并且具有管理员权限(通常通过sudo命令实现),打开终端并执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
安装DHCP服务器软件包,Ubuntu默认使用ISC DHCP Server,可以通过以下命令安装:
sudo apt install isc-dhcp-server -y
安装完成后,DHCP服务会自动启动,但初始配置可能无法正常工作,需要进一步调整。
网络接口配置
DHCP服务器需要监听特定的网络接口以接收客户端的请求,确定服务器用于提供DHCP服务的网络接口名称,使用以下命令列出所有网络接口:

ip addr show
假设服务器通过eth0接口提供DHCP服务,需要编辑DHCP服务的主配置文件/etc/dhcp/dhcpd.conf,在修改配置文件前,建议先备份原始文件:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
然后使用文本编辑器(如nano)打开配置文件:
sudo nano /etc/dhcp/dhcpd.conf
配置文件详解
dhcpd.conf文件是DHCP服务器的核心配置文件,其内容采用分层结构,包含全局参数、子网声明、主机声明等部分,以下是一个典型的配置示例:
# 全局配置
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
# 子网声明
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option broadcast-address 192.168.1.255;
}
参数说明:

default-lease-time:默认租约时间(秒),客户端未明确请求租约时长时使用。max-lease-time:最大租约时间(秒),客户端可请求的最长租约。authoritative:声明该DHCP服务器为权威服务器,避免客户端与其他DHCP服务器冲突。subnet:定义DHCP服务的子网范围,包括网络地址、子网掩码、IP地址池等。range:分配给客户端的IP地址范围。option routers:客户端的默认网关地址。option subnet-mask:客户端的子网掩码。option domain-name-servers:客户端的DNS服务器地址,可配置多个。
启动与测试配置
完成配置文件修改后,保存并退出编辑器,使用以下命令检查配置文件语法是否正确:
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
如果输出“Configuration file OK”,则表示配置文件语法正确,指定DHCP服务器监听的接口,编辑/etc/default/isc-dhcp-server文件:
sudo nano /etc/default/isc-dhcp-server
找到INTERFACESv4行,修改为:
INTERFACESv4="eth0"
保存后,重启DHCP服务使配置生效:
sudo systemctl restart isc-dhcp-server
使用以下命令检查服务状态:
sudo systemctl status isc-dhcp-server
若显示“active (running)”,则服务运行正常,将客户端设备连接到同一网络并设置为自动获取IP地址,可通过ipconfig(Windows)或ip addr(Linux)查看是否成功获取到配置的IP地址。
高级配置与故障排查
多子网配置
若需为多个子网提供DHCP服务,可在dhcpd.conf中添加多个subnet声明。
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 subnet-mask 255.255.255.0;
}
静态IP分配
为特定设备(如服务器或打印机)分配固定IP地址,可在配置文件中添加host声明:
host printer {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.50;
}
hardware ethernet为客户端的MAC地址,fixed-address为分配的静态IP。
常见问题
- 客户端无法获取IP:检查DHCP服务是否正常运行,确认接口配置正确,并查看防火墙是否阻止UDP 67端口(DHCP服务端口)。
- IP地址冲突:使用
arp -a命令检查网络中是否存在重复IP,或在配置文件中启用ping-check选项(需ISC DHCP Server 4.3+版本)。
相关问答FAQs
问题1:如何查看DHCP服务器已分配的租约信息?
解答:DHCP服务器会将租约信息存储在/var/lib/dhcp/dhcpd.leases文件中,使用以下命令查看:
sudo cat /var/lib/dhcp/dhcpd.leases
文件中包含客户端的MAC地址、分配的IP地址、租约开始和结束时间等信息,定期清理过期的租约文件可释放空间。
问题2:如何限制DHCP客户端的最大连接数?
解答:在dhcpd.conf的subnet声明中添加max-lease参数,限制该子网的最大租约数量。
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
max-lease 50; # 限制最多50个租约
# 其他配置...
}
当客户端数量超过限制时,新的请求将被拒绝,直到有租约释放。
