如何安装dhcp服务器
- 云服务器
- 2025-08-20
- 6
前期准备
确认系统环境
本文以Linux系统(如Ubuntu/CentOS)为例,Windows Server也可通过“添加角色和功能”安装DHCP服务,确保当前用户具有管理员权限(root或sudo权限)。
检查网络配置冲突
避免现有静态IP地址与即将分配的动态范围重叠,若计划分配168.1.100~200,则需确认网关、服务器自身等未占用该区间内的地址。
Linux系统下安装步骤(以Ubuntu为例)
更新软件包列表
打开终端,执行以下命令确保获取最新版本的软件包:
sudo apt update
安装DHCP服务组件
使用APT工具安装主程序及常用依赖:
sudo apt install isc-dhcp-server -y
说明:isc-dhcp-server是互联网系统联盟(ISC)维护的标准DHCP实现,兼容性强且稳定。
配置核心文件/etc/dhcp/dhcpd.conf
这是DHCP服务的配置文件,需手动编辑关键参数:
| 参数类型 | 示例配置 | 作用说明 |
|—————-|———————————–|——————————|
| subnet | subnet 192.168.1.0 netmask 255.255.255.0 { ... } | 定义目标网段 |
| range | range 192.168.1.100 192.168.1.200; | 可动态分配的IP地址池 |
| option routers| option routers 192.168.1.1; | 设置默认网关 |
| option domain-name-servers | option domain-name-servers 8.8.8.8, 114.114.114.114; | 指定DNS服务器 |
| default-lease-time | default-lease-time 600; | 租约时长(单位:秒,此处为10分钟) |
| max-lease-time | max-lease-time 7200; | 最大租约时长(2小时) |
注意:若网络中有多个子网,需重复subnet块进行配置;注释符为,可用其添加备注方便维护。
关联网卡接口
默认情况下,DHCP可能未绑定到任何物理/虚拟网卡,导致无法提供服务,通过修改/etc/default/isc-dhcp-server文件中的INTERFACESv4参数指定监听的接口(如eth0或ens33):
sudo nano /etc/default/isc-dhcp-server
将INTERFACESv4=""改为INTERFACESv4="eth0"(根据实际网卡名称调整)。
启动并启用服务
依次执行以下命令使配置生效且开机自启:
# 测试运行(检查语法错误) sudo dhcpd --test # 正式启动服务 sudo systemctl start isc-dhcp-server # 设置开机自启 sudo systemctl enable isc-dhcp-server
若出现错误提示(如“No subnet declaration for …”),需返回检查dhcpd.conf中的子网定义是否完整。
验证与排障
查看运行状态
使用systemctl确认服务是否正常:
systemctl status isc-dhcp-server
预期输出应包含“active (running)”。

日志排查
查看详细日志定位问题:
journalctl -u isc-dhcp-server --since "5 minutes ago"
常见错误包括端口被占用(默认UDP端口67)、配置文件语法错误等。
客户端测试
在另一台设备上设置网络为自动获取IP,通过ifconfig或ip addr show查看是否获得正确的DHCP分配地址。
Windows Server安装简要流程(补充)
若使用Windows环境,步骤如下:
- 打开“服务器管理器”→“管理”→“添加角色和功能”;
- 向导中选择“DHCP服务器”,完成安装;
- 授权作用域:右键“IPv4”→“新建作用域”,按提示设置地址池、排除地址(如服务器自身IP)、租期等;
- 激活作用域后即可提供服务。
相关问题与解答
Q1:DHCP服务器启动失败,日志提示“Address already in use”(地址已被占用)怎么办?
A:通常是因为端口67(UDP)被其他进程占用,可通过netstat -tulnp | grep :67查看占用该端口的程序PID,然后终止它(如kill -9 <PID>);或修改DHCP服务的监听端口(不推荐,可能影响兼容性)。
Q2:客户端无法获取IP,但服务器显示正常运行,可能有哪些原因?
A:常见原因包括:①防火墙阻止了UDP 67/68端口(需放行);②交换机VLAN隔离导致广播包无法到达客户端;③客户端网络设置为静态IP未切换为自动获取;④地址池已耗尽(检查dhcpd.leases文件中的已分配记录

