Linux 系统 DHCP 服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于为局域网内的设备自动分配 IP 地址、子网掩码、网关、DNS 等网络参数,避免手动配置的繁琐和冲突,是 Linux 服务器中常用的网络服务之一。:租期可根据需求调整,企业网可设 86400(24 小时):必须与服务器内网网卡的网段一致,否则服务无法启动。:定义动态分配的 IP 池,多个网段可配置
·
Linux 系统 DHCP 服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于为局域网内的设备自动分配 IP 地址、子网掩码、网关、DNS 等网络参数,避免手动配置的繁琐和冲突,是 Linux 服务器中常用的网络服务之一。
一、DHCP 服务核心原理
1. 地址分配方式
- 自动分配:为设备分配永久 IP,一旦分配不会回收
- 动态分配(最常用):为设备分配租期内的 IP,租期到期后回收,可重复分配
- 手动分配:管理员为特定 MAC 地址绑定固定 IP(地址预留)
2. 地址分配流程(DORA)
- 发现(Discover):客户端开机后发送广播包,寻找局域网内的 DHCP 服务器
- 提供(Offer):DHCP 服务器收到广播后,向客户端发送包含可用 IP 的响应包
- 请求(Request):客户端选择其中一个 IP,再次广播请求确认
- 确认(Acknowledge):服务器确认该 IP 分配,发送包含网络参数(网关、DNS、租期)的确认包,客户端完成配置
二、DHCP 服务安装
1. CentOS/RHEL 7/8/9(yum/dnf)
运行
# CentOS 7
yum install -y dhcp
# CentOS 8/9
dnf install -y dhcp
2. Ubuntu/Debian(apt)
运行
# 更新源
apt update
# 安装DHCP服务
apt install -y isc-dhcp-server
三、DHCP 服务核心配置
DHCP 的主配置文件/etc/dhcp/dhcpd.conf默认内容较少,需手动编写核心配置,配置项严格区分大小写,语句以;结尾,注释用#。
# 全局配置(对所有子网生效)
option domain-name "local.com"; # 局域网域名
option domain-name-servers 223.5.5.5, 114.114.114.114; # DNS服务器(阿里+114)
default-lease-time 600; # 默认租期(秒),600=10分钟
max-lease-time 7200; # 最大租期(秒),7200=2小时
ddns-update-style none; # 关闭DNS动态更新(局域网推荐)
authoritative; # 声明为权威DHCP服务器,拒绝非本服务器的配置
# 子网配置(核心,定义分配的网段)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 可分配的IP地址池(100-200)
option routers 192.168.1.1; # 网关地址(路由器/服务器内网IP)
option subnet-mask 255.255.255.0; # 子网掩码
option broadcast-address 192.168.1.255; # 广播地址
}
# 地址预留(为特定设备绑定固定IP,MAC地址对应设备物理地址)
host pc1 {
hardware ethernet 00:11:22:33:44:55; # 设备MAC地址
fixed-address 192.168.1.88; # 绑定的固定IP(需在子网内,且不在地址池)
}
host printer {
hardware ethernet AA:BB:CC:DD:EE:FF;
fixed-address 192.168.1.99;
}
2. 关键配置项说明
range:定义动态分配的 IP 池,多个网段可配置多个
rangeoption routers:局域网网关,必填,否则客户端无法上外网
option domain-name-servers:DNS 服务器,多个用逗号分隔
default/max-lease-time:租期可根据需求调整,企业网可设 86400(24 小时)
host:地址预留配置,hardware ethernet后接 MAC 地址(冒号分隔)
subnet + netmask:必须与服务器内网网卡的网段一致,否则服务无法启动
四、DHCP 服务启动与自启
1. CentOS/RHEL 7/8/9
bash
运行
# 启动服务
systemctl start dhcpd
# 设置开机自启
systemctl enable dhcpd
# 查看服务状态(确认是否正常运行)
systemctl status dhcpd
# 重启服务(配置修改后需重启)
systemctl restart dhcpd
# 查看服务日志(排查错误)
journalctl -u dhcpd -f # -f 实时查看日志
2. Ubuntu/Debian
bash
运行
# 启动服务
systemctl start isc-dhcp-server
# 设置开机自启
systemctl enable isc-dhcp-server
# 查看服务状态
systemctl status isc-dhcp-server
# 重启服务
systemctl restart isc-dhcp-server
# 实时查看日志
journalctl -u isc-dhcp-server -f更多推荐
所有评论(0)