Ubuntu配置DHCP选项(ISC DHCP Server)指南
在Ubuntu上配置DHCP服务前,需先安装isc-dhcp-server软件包。打开终端,依次执行以下命令更新包列表并安装:
sudo apt update
sudo apt install isc-dhcp-server
ISC DHCP Server的主配置文件为/etc/dhcp/dhcpd.conf,需编辑该文件定义全局选项和子网规则:
sudo nano /etc/dhcp/dhcpd.conf
在文件顶部添加全局配置,适用于所有子网(如域名、DNS服务器、租约时间):
# 定义域名(可选)
option domain-name "example.com";
# 定义DNS服务器(可指定多个,用逗号分隔)
option domain-name-servers 8.8.8.8, 8.8.4.4;
# 默认租约时间(秒,客户端首次获取IP的有效期)
default-lease-time 600;
# 最大租约时间(秒,客户端续租时的最长有效期)
max-lease-time 7200;
# 声明本服务器为网络的权威DHCP服务器(避免客户端接受其他服务器的响应)
authoritative;
定义子网的IP范围、网关、子网掩码等参数,格式如下:
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 subnet-mask 255.255.255.0; # 子网掩码(可选,客户端通常自动计算)
option broadcast-address 192.168.1.255; # 广播地址(可选)
}
注:range的IP范围需在子网内且不与静态IP冲突(如路由器、服务器的IP)。
编辑/etc/default/isc-dhcp-server文件,设置DHCP服务器监听的网络接口(如eth0、enp0s3):
sudo nano /etc/default/isc-dhcp-server
找到INTERFACESv4行,修改为实际接口名称(可通过ip a命令查看):
INTERFACESv4="eth0"
若需监听多个接口,用空格分隔(如INTERFACESv4="eth0 eth1")。
配置完成后,启动DHCP服务并设置为开机自启:
sudo systemctl start isc-dhcp-server # 启动服务
sudo systemctl enable isc-dhcp-server # 开机自启
检查服务状态,确认是否运行正常:
sudo systemctl status isc-dhcp-server
若显示active (running),则表示服务已启动。
若系统启用了ufw防火墙,需允许DHCP流量(UDP端口67/68):
sudo ufw allow 67/udp # DHCP服务器端口
sudo ufw allow 68/udp # DHCP客户端端口
sudo ufw reload # 重新加载防火墙规则
在局域网内的客户端设备(如另一台电脑、手机)上,将网络设置为“自动获取IP地址”(DHCP),然后检查是否获取到配置范围内的IP(如192.168.1.100-200)。
sudo dhclient -r && sudo dhclient释放并重新获取IP,再用ip a查看分配的IP。ipconfig /release和ipconfig /renew。查看DHCP租约记录,确认客户端是否成功获取IP:
cat /var/lib/dhcp/dhcpd.leases
或使用journalctl查看实时日志:
sudo journalctl -u isc-dhcp-server -f
若需为特定设备(如打印机、服务器)分配固定IP,可在dhcpd.conf中添加host声明:
host printer {
hardware ethernet 00:11:22:33:44:55; # 设备的MAC地址(需替换为实际值)
fixed-address 192.168.1.200; # 分配的固定IP
}
修改配置文件后,建议先检查语法是否正确,避免服务启动失败:
sudo dhcpd -t
若无错误输出,则语法正确。
通过以上步骤,即可在Ubuntu上成功配置DHCP选项,为局域网设备自动分配IP地址及相关网络参数。