author
type
Post
status
Published
date
Feb 23, 2026
slug
summary
tags
Linux
服务部署
category
运维
icon
password
一、实验目的
- 掌握在 CentOS 7 系统中部署和配置 DHCP 服务器的基本流程。
- 理解 DHCP 协议的工作原理及自动分配 IP 地址的过程。
- 实现为 Linux 客户端(CentOS)和 Windows 客户端(Win10/Win11)动态分配网络参数(IP、子网掩码、网关、DNS 等)。
- 学习通过 MAC 地址绑定实现特定主机的固定 IP 分配。
- 掌握常见故障排查方法,提升网络服务运维能力。
二、实验内容
- 在 CentOS 7 上安装并配置 DHCP 服务(
dhcpd)。
- 编辑主配置文件
/etc/dhcp/dhcpd.conf,设置网络参数: - 子网范围
- 可用地址池
- 默认网关
- DNS 服务器
- 租约时间等
- 配置防火墙以允许 DHCP 流量通信。
- 启动并启用 DHCP 服务开机自启。
- 使用 CentOS 和 Windows 客户机测试 IP 自动获取功能。
- 查看租约记录和系统日志验证服务运行状态。
- 配置基于 MAC 地址的静态 IP 分配(保留地址)。
三、实验环境与准备
设备类型 | 操作系统 | IP 地址示例 | 角色 |
服务器 | CentOS 7 | 11.0.1.80/24 | DHCP Server |
客户端 1 | CentOS 7 | 动态获取 | DHCP Client |
客户端 2 | Windows 10 | 动态获取 | DHCP Client |
所有设备处于同一局域网广播域内,使用 VMware 或 VirtualBox 搭建虚拟网络环境,交换机模式为 NAT 或仅主机(Host-only)模式。
网络拓扑图(建议绘制后插入)

四、实验分析与设计思路
1. 技术原理简析
DHCP(Dynamic Host Configuration Protocol)是一种应用层协议,用于自动向客户端分配 TCP/IP 参数。其工作过程遵循 DORA 模型:
- Discover:客户端广播寻找可用 DHCP 服务器
- Offer:服务器回应提供一个 IP 地址建议
- Request:客户端选择该 IP,并请求正式使用
- Acknowledge:服务器确认,完成分配
整个过程基于 UDP 协议,客户端使用端口 68,服务器监听端口 67。
2. 设计思路
- 将 DHCP 服务器部署在稳定可靠的 Linux 平台(CentOS 7),保障服务连续性。
- 划分独立的地址池(
11.0.1.100~200),避免与静态 IP 冲突。
- 设置合理的租约时间:默认 10 分钟(测试环境短周期便于观察),最大 2 小时。
- 为主流设备(Linux/Windows)统一提供 DNS 服务器(Google + 国内公共 DNS),提高解析成功率。
- 启用
authoritative;指令,使服务器对本子网具有权威性,加快响应速度。
- 对关键设备(如服务器、打印机)实施 MAC 绑定,保证其 IP 不变。
- 通过防火墙策略控制访问权限,在安全性与功能性之间取得平衡。
五、实验准备
1. 软硬件准备
- 虚拟化平台(VMware Workstation / VirtualBox)
- CentOS 7 最小安装镜像
- 已安装的 Windows 10 客户机虚拟机
- 共享网络环境(推荐 Host-only 或自定义 NAT 网络)
2. 工具准备
- 命令行工具:
ip,nmcli,systemctl,journalctl
- 文本编辑器:
vim或重定向写入配置
- 日志查看命令:
cat /var/lib/dhcpd/dhcpd.leases
- Windows 命令提示符:
ipconfig /renew,ipconfig /release
3. 关键依赖安装
确保安装包是
dhcp,服务名为 dhcpd。六、实验过程
步骤 1:安装 DHCP 服务
步骤 2:备份并编写主配置文件
⚠️ 修改说明:请根据实际服务器所在网段修改subnet、range和routers。例如若服务器 IP 是192.168.10.1,则需改为对应值。
步骤 3:确认监听网卡
查看网卡状态:
假设主网卡为
ens33,且处于 11.0.1.0/24 网段,则 DHCP 服务将自动为此子网提供服务。✅ 注意事项:
- DHCP 服务通常依据路由表和接口归属判断作用域;
- 若存在多个网卡,请谨慎配置,防止服务冲突。
步骤 4:启动并设置开机自启
检查运行状态:
预期输出应包含:
active (running)如有异常,可执行语法检测:
步骤 5:配置防火墙规则
方法一:临时关闭(仅限测试)
方法二:放行 DHCP 服务(推荐)
DHCP 使用 UDP 端口:67(Server)、68(Client)
步骤 6:客户端测试
✅ CentOS 客户端测试
预期看到动态 IP 在
11.0.1.100~200 范围内,同时获得网关和 DNS。✅ Windows 客户端测试
- 进入“控制面板” → “网络和共享中心”
- 更改适配器设置 → 右键属性 → IPv4 → 设置为:
- ☑ 自动获得 IP 地址
- ☑ 自动获得 DNS 服务器地址
- 执行命令:
成功后应显示来自11.0.1.x的 IP 地址。
七、实验结果及分析
1. 服务运行状态验证
✅ 输出状态为
active (running),表明服务已正常启动。2. 客户端 IP 获取情况
客户端类型 | 是否成功 | 分配 IP | 获取方式 |
CentOS | 是 | 11.0.1.100 | DHCP |
Windows | 是 | 11.0.1.101 | DHCP |
从日志可以看出两次成功的交互过程:
表明服务器正确识别了客户端请求,并成功返回 ACK 确认。
3. 租约文件验证
查看
/var/lib/dhcpd/dhcpd.leases 文件:- 显示客户机 MAC 地址、主机名、租约生效时间均完整记录。
- 当前状态为
active,表示正在使用中。
💡 分析:租约机制有效运行,服务器能持久化管理 IP 分配情况,具备高可靠性。
4. 固定 IP 绑定测试(高级功能)
添加如下配置:
重启服务并释放/更新 IP 后,目标 Windows 主机稳定获取到
11.0.1.120。✔ 成功实现“一台设备永久使用一个 IP”,适用于服务器、打印设备等场景。
八、总结
本次实验成功在 CentOS 7 上部署并配置了 DHCP 服务器,实现了对 Linux 和 Windows 双平台客户端的自动化 IP 地址分配。
收获与体会:
- 掌握了 DHCP 的基本配置语法与典型应用场景,理解了
subnet、range、option、host等核心指令的作用。
- 熟悉了企业级网络服务的部署流程:安装 → 配置 → 启动 → 防火墙处理 → 客户端验证 → 日志审计。
- 加深了对 DHCP 协议工作机制的理解,特别是 DORA 过程中的报文交互与广播特性。
- 学会了如何为关键设备保留固定 IP,增强了服务的灵活性与可控性。
- 实践了基础排错技能,如使用
dhcpd -t校验配置、journalctl查看实时日志。
存在问题与改进方向:
问题 | 解决方案 |
多子网环境下无法跨网段分配 | 需配合 DHCP 中继代理(如路由器) |
租约时间较短导致频繁续约 | 生产环境中可延长至数小时甚至一天 |
未进行跨 VLAN 测试 | 后续可结合路由器模拟复杂拓扑 |
日志未做定期轮转 | 可引入 logrotate 管理日志增长 |
应用前景:
DHCP 作为现代局域网不可或缺的基础服务,广泛应用于学校、企业、数据中心等大规模网络环境中。掌握其配置与维护技能,为进一步学习 DNS、PXE 网络装机、自动运维打下坚实基础。
📎 附录:常见问题排查表
问题现象 | 原因分析 | 解决方法 |
客户机提示“正在获取 IP 地址…” | DHCP 服务未运行或不可达 | 检查 systemctl status dhcpd 和防火墙规则 |
获取到 169.254.x.x APIPA 地址 | 未收到 DHCP 响应,不在同一广播域 | 确保客户机与服务器在同一子网,交换机模式正确 |
启动失败,报错 No subnet declaration | dhcpd.conf 中 subnet 与服务器 IP 不匹配 | 修改 subnet 使其覆盖服务器所在的本地网络 |
客户端拿到 IP 但无法通信 | 网关或 DNS 配置错误 | 检查 option routers 和 domain-name-servers 是否正确 |
两台设备获取同一 IP | 租约文件冲突或地址池不足 | 清空 .leases 文件并重启服务,扩大地址池 |
🔧 辅助诊断命令:
- 作者:NotionNext
- 链接:https://tangly1024.com/article/310db897-8f81-8055-b030-eb4c7b261470
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。











