dhcpd服务器的配置与管理(超详细!!!)
前提条件:
(1)虚拟机能够联网(如果nat模式不能联网的看另一期)
CentOS7 NAT模式不能联网-CSDN博客
(2)系统是Centos8,因为下载的dhcp-server软件包版本和Centos7不匹配,如果你能成功下载 dhcp-server就行
阿里云镜像: https://mirrors.aliyun.com/centos/




这个版本是最完整版的,具体想要什么版本根据自己的需求
一、了解DHCP
在企业网络中,一般会涉及主机等终端设备进行资源互访的情况,因此每个终端都需要配置IP地址等网络参数才能接入网络。在小型网络中,终端数量很少,可以手动配置IP地址,但是在中大型网络中,终端数量很多,手动配置 IP 地址工作量大,而且配置时容易导致IP地址冲突等错误,DHCP 可以为网络终端动态分配 IP 地址,解决了手工配置IP地址时的各种问题。
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是一种简化主机ip地址分配管理的TCP/IP标准协议,是通过服务器集中管理网络上使用的IP地址及其相关配置信息,以减少管理 IP 地址配置的复杂性。Linux 提供了DHCP服务,它允许服务器履行DHCP的职责,并且通过网络自动配置启用了 DHCP功能的客户端。
在使用DHCP时,网络中至少有一台拥有DHCP服务的Server/PC,客户端需要设置成自动获得IP地址。客户端在向服务器请求一个IP地址时,如果DHCP 服务器的IP地址数据中能提供IP,则登记IP信息并分配这个地址给客户端使用,顺带相关的配置选项。
二、DHCP工作过程
当DHCP客户端第一次启动时,它通过一系列的步骤获得 TCP/IP 配置信息和 IP 地址的租期。租期是指 DHCP 客户端从 DHCP 服务器获得完整的 TCP/IP配置后对该TCP/IP配置的保留使用时间。客户端从服务器上获得完整的TCP/IP配置要经过4个过程。
(1)发现阶段:由于客户端并不知道DHCP服务器的地址,因此会用0.0.0.0作为源地址,255.255.255.255作为目标地址,向网络上广播一个 DHCP Discover 消息报文,报文中包含了客户端的 MAC地址和NetBIOS名字。与客户端在同一物理网段上的每一台安装了TCP/IP协议的计算机都会收到该广播报文,但只有DHCP服务器才会做出响应。
(2)提供阶段:网络中的DHCP服务器收到来自客户端的DHCP Discover报文后,会从IP地址池中挑选一个尚未出租的 IP 地址预分配给 DHCP客户端,并且在网络上广播一个DHCP Offer 响应报文,该报文包含了客户端的MAC地址、服务器所提供的IP地址、子网掩码、租用期限,以及DHCP 服务器本身的 IP 地址。若网络中有多台DHCP服务器,则这些DHCP 服务器都会广播各自的DHCP Offer报文。
(3)请求阶段:如果客户端收到网络上多台DHCP服务器的响应报文,则DHCP客户端只接收第一个收到的 DHCP Offer 提供的信息,并向网络发送一个DHCP Request广播报文,以此告诉所有 DHCP 服务器它将选择哪一台 DHCP服务器提供的IP地址。
(4)确认阶段:当DHCP 服务器收到DHCP 客户端回答的 DHCP Request广播报文之后,查看报文中服务方的IP地址,确认自己是否被选为服务方。若未选中则撤销预分配的IP地址等信息,若被选择则发送一个 DHCP ACK报文,该报文包括一个租用期限和客户所请求的其他配置信息。客户端收到 DHCP ACK报文后,配置它的TCP/IP属性并加入网络中。

注:客户端发送DHCP Discover后,如果没有 DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个 IP 地址临时配置本机地址。此后,每隔5分钟发送一个DHCP Discover消息报文,尝试与DHCP服务器进行通信,若联系成功则使用由 DHCP 服务器提供的 IP 地址来更新自己的配置。
三、安装与启动DHCP服务
例题:公司有台 Linux服务器采用静态IP地址配置,现要对同网段的IT部进行IP地址分配,请按以下需求进行DHCP服务器搭配,保障IT部所有PC都可以正常获得正确的网络IP信息。
网段为192.168.159.135/24,DHCP 服务器,网关为192.168.159.1,分配的地址段为192.168. 159.50~192.168.159.60,租约时间默认;Centos8(克隆) PC1模拟自动获取
配置步骤如下:
按需求进行环境准备和信息采集,如表所示。
| 主机 | 操作系统 | IP地址 | MAC地址 |
|---|---|---|---|
| Server | Centos8 | 192.168.159.135 | 00:0c:29:c0:7f:2f |
| PC1 | Centos8(克隆) | 自动获取 | 00:0c:29:a3:8e:a5 |
(1)先克隆一个Centos系统


注意: 将克隆的Centos的虚拟网络编辑器中的“使用本地DHCP服务将IP地址分配给虚拟机”这个选项关闭!!!


(2)开启Server虚拟机 ,首先更新yum源
cd /etc/yum.repos.d

备份原来的源
mkdir bak

开始更新yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

建立新的元数据缓存
yum makecache

(3) 安装DHCP服务
yum install dhcp-server

(4)配置dhcp主配置文件
vi /etc/dhcp/dhcpd.conf
subnet 192.168.159.0 netmask 255.255.255.0{
range dynamic-bootp 192.168.159.50 192.168.159.60;
option routers 192.168.159.1;
}
子网ip和掩码都可以查看

(5) 检查配置
dhcpd -t

(6)Server 设置静态ip地址
cd /etc/sysconfig/network-scripts/

vi ifcfg-ens33
修改内容有:
BOOTPROTO=static //改为静态的
ONBOOT=yes //开机时自动启动
IPADDR=192.168.159.135 //IP地址
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.159.1 //网关

重载配置信息
systemctl restart NetworkManager.service
重启网络服务
nmcli connection up ens33
(7)使用ifconfig查看 DHCP Server的ip

(8)重启dhcpd服务
systemctl restart dhcpd
(9) 开启客户端虚拟机,在PC1客户端(克隆的Centos系统)配置网络配置文件
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
将BOOTPROTO改为dhcp,ONBOOT改为yes

BOOTPROTO:指定引导协议。no表示不使用引导协议(如DHCP或BOOTP)来获取IP地址。
ONBOOT:指定是否在系统启动时自动启动网络接口。no表示在系统启动时不会自动启动这个接口。
修改后要重启network
systemctl restart network
(10)在PC1客户端设置动态获取IP地址
nmcli connection modify ens33 ipv4.method auto
nmcli connection up ens33

使用 ifconfig 查看PC1客户端(克隆的Centos系统)的ip

结果已经成功分配ip地址
如果你有多个克隆的虚拟机自动获取ip那么结果如下:


相关文章:
dhcpd服务器的配置与管理(超详细!!!)
前提条件: (1)虚拟机能够联网(如果nat模式不能联网的看另一期) CentOS7 NAT模式不能联网-CSDN博客 (2)系统是Centos8,因为下载的dhcp-server软件包版本和Centos7不匹配,如果你能成…...
Qml之基本控件
一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本: Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...
【Java从入门到放弃 之 Stream API】
Java Stream API Stream API行为参数化传递代码Lambda表达式Lambda 表达式的语法方法引用 Lambda 表达式的实际应用集合操作并发编程 Lambda 表达式的注意事项总结 Stream API Java8提供了一个全新的API - Stream。引入这个Stream的主要目的,一个是可以支持更好的并…...
Ruby On Rails 笔记1——Rails 入门
突然想跟着官方文档把Ruby On Rails过一遍,把一些有用的记下来就可以一直看了,do它! https://guides.rubyonrails.org/v7.2/ 注:官网是英文文档,我自己翻译了一下,不确保完全准确,只供自己学习开发使用。 …...
高效开发 Python Web 应用:FastAPI 数据验证与响应体设计
高效开发 Python Web 应用:FastAPI 数据验证与响应体设计 目录 🧑💻 FastAPI 的数据验证系统与 Pydantic 模型📦 响应体与模型:定义响应数据的最佳实践🔄 响应模型与查询参数的结合:增强灵活…...
基于“开源 2+1 链动 O2O 商城小程序”的门店拉新策略与流程设计
摘要:在数字化商业浪潮席卷之下,实体门店面临着激烈的市场竞争,如何高效拉新成为关乎门店生存与发展的关键问题。本文聚焦于“开源 21 链动 O2O 商城小程序”,深入探讨结合多种手段的门店拉新策略及详细流程设计。通过剖析到店扫码…...
33.5 remote实战项目之设计prometheus数据源的结构
本节重点介绍 : 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写入数据 准备工作 新建项目 prome_remote_read_write设计prometheus 数据源的结构初始化 项目要求 通过remote read读取prometheus中的数据通过remote write向prometheus中写…...
微服务springboot详细解析(一)
目录 1.Spring概述 2.什么是SpringBoot? 3.第一个SpringBoot程序 4.配置参数优先级 5.springboot自动装配原理 6.SpringBootApplication&SpringApplication.run 7.ConfigurationProperties(prefix "") 8.Validated数据校验 29、聊聊该如何写一…...
深入探讨Go语言中的双向链表
简介 双向链表是链表家族中的一种高级结构,每个节点不仅指向下一个节点,还指向上一个节点。今天,我们将学习如何在Go语言中实现和操作这种灵活的数据结构。 双向链表的优缺点 优点: 可以从任一方向遍历链表,灵活性高…...
Fastapi + vue3 自动化测试平台---移动端App自动化篇
概述 好久写文章了,专注于新框架,新UI界面的实践,废话不多说,开搞 技术架构 后端: Fastapi Airtest multiprocessing 前端: 基于 Vue3、Vite、TypeScript、Pinia、Pinia持久化插件、Unocss 和 Elemen…...
ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词
1.将用户访问记录表数据同步到ES,并且分词,获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...
在 ASP.NET C# Web API 中实现 Serilog 以增强请求和响应的日志记录
介绍 日志记录是任何 Web 应用程序的关键方面。它有助于调试、性能监控和了解用户交互。在 ASP.NET C# 中,集成 Serilog 作为记录请求和响应(包括传入和传出的数据)的中间件可以显著提高 Web API 的可观察性和故障排除能力。 在过去的几周里&…...
2024年顶级小型语言模型前15名
本文,我们将深入了解2024年备受瞩目的十五款小型语言模型(SLMs),它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称,它们不需要依赖庞大的服务器资源,…...
精通 Python 网络安全(一)
前言 最近,Python 开始受到越来越多的关注,最新的 Python 更新添加了许多可用于执行关键任务的包。我们的主要目标是帮助您利用 Python 包来检测和利用漏洞,并解决网络挑战。 本书将首先带您了解与网络和安全相关的 Python 脚本和库。然后&…...
【python自动化二】pytest集成allure生成测试报告
pytest本身不会直接生成测试报告,而allure是一种生成测试报告的公共插件,可与多种测试框架配合生成测试报告,本文介绍下如何集成allure生成测试报告。 1.allure安装 1.安装allure-pytest 先安装allure的pytest插件,用于在pytes…...
网络版本的通讯录青春版(protobuf)
环境搭建 Protobuf 还常⽤于通讯协议、服务端数据交换场景。 因为我们主要目的只是为了学习protobuf,因此对于客户端,原本应该具备: 新增⼀个联系⼈ ◦ 删除⼀个联系⼈ ◦ 查询通讯录列表 ◦ 查询⼀个联系⼈的详细信息 这样四个功能。 …...
开源模型应用落地-安全合规篇-用户输入价值观判断(三)
一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...
神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型
(一) pytorch 官网内置的网络模型 图像处理: Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型(仅前向传播): 下方的网络模型图片有误,已做修改,具…...
【Rust在WASM中实现pdf文件的生成】
Rust在WASM中实现pdf文件的生成 前言概念和依赖问题描述分步实现pdf转Blob生成URL两种方式利用localstorage传递参数处理图片Vec<u8>到pdf格式的Vec<u8>使用rust创建iframe显示pdf的Blob最后 前言 实现了一个通用的前端jpg转pdf的wasm,因为动态响应框架无法直接打…...
在MySQL中执行sum case when报错:SUM does not exist
1. 报错 在pgsql中能正常运行的一段SQL在MySQL中运行的时候报错了: SELECT DATE( hr.handle_time ) AS statsDate,SUM ( CASE WHEN hma.app_type IN ( 2, 5 ) THEN ch_money ELSE 0 END ) AS aliPayAmt,SUM ( CASE WHEN hma.app_type IN ( 1, 4 ) THEN ch_money EL…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
