01. 配置DHCP服务器

配置DHCP

先给server和client加一个VMnet1(仅主机模式)

同时因为我们自己要配dhcp,所以要把vmnet1的dhcp关掉

配置DHCP服务流程

1. 先配置一个固定的ip地址

bash 复制代码
[root@server ~ 20:08:57]# nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  0b3cd631-c756-3179-be17-1566c419a902  ethernet  ens33  
ens32               41804fd8-9a16-47cb-96fb-5d627b9b8ab6  ethernet  ens32    

[root@server ~ 21:07:33]# nmcli connection delete Wired\ connection\ 1 
Connection 'Wired connection 1' (0b3cd631-c756-3179-be17-1566c419a902) successfully deleted.

[root@server ~ 21:07:41]# nmcli connection
NAME   UUID                                  TYPE      DEVICE 
ens32  41804fd8-9a16-47cb-96fb-5d627b9b8ab6  ethernet  ens32  

[root@server ~ 21:07:47]# nmcli connection add type ethernet ifname ens33 con-name ens33 ipv4.method manual ipv4.addresses 10.1.1.10/24
Connection 'ens33' (66ae2751-4903-467f-9da2-4b13ade3e29f) successfully added.

[root@server ~ 21:08:09]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens32            UP             10.1.8.128/24 10.1.8.10/24 fe80::20c:29ff:febc:b536/64 
ens33            UP             10.1.1.10/24 fe80::8f35:1b44:7601:ed1a/64
参数 含义
nmcli NetworkManager 的命令行管理工具,用于配置网络连接
connection add 核心子命令,功能是新增一个网络连接配置
type ethernet 指定连接类型为以太网(有线网络)
ifname ens33 指定绑定的网卡设备名称为 ens33(虚拟机常用网卡名)
con-name ens33 设置连接配置的名称为 ens33(可自定义,建议与网卡名一致方便管理)
ipv4.method manual 指定 IPv4 地址获取方式为手动配置(静态 IP) ,与之对应的是 auto(DHCP 自动获取)
ipv4.addresses 10.1.1.10/24 设置静态 IPv4 地址和子网掩码:- IP 地址:10.1.1.10- 子网掩码:/24 等价于 255.255.255.0

2. 安装软件包

bash 复制代码
[root@server ~ 19:29:23]# yum install -y dhcp

3. 查看下载的dhcp里包含那些文件

bash 复制代码
[root@server ~ 19:30:29]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

4. 可以看到dhcp.conf文件里只有一些备注,因为还没有开始配置dhcp,相当于只是下载了一个外壳,还没有开始配置

bash 复制代码
[root@server ~ 19:30:49]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

5. 复制dhcp.conf

bash 复制代码
[root@server ~ 09:24:48]# /bin/cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
部分 作用
/bin/cp 指定使用cp命令的绝对路径(避免环境变量问题),核心功能是复制文件
/usr/share/doc/dhcp*/dhcpd.conf.example 源文件:DHCP 安装后自带的示例配置文件dhcp*是通配符,匹配dhcp开头的目录(如dhcp-4.2.5),适配不同版本的 DHCP 包
/etc/dhcp/dhcpd.conf 目标文件:DHCP 服务(dhcpd)的核心配置文件,服务启动时会读取这个路径

6. 配置服务器,例如修改服务器配置文件

bash 复制代码
[root@server ~ 19:31:08]# vim /etc/dhcp/dhcpd.conf
:set nu
gg光标定位到行首,然后d46G,删除前1-46行
:11,28d 删除11-28行
:15,$d 删除15-最后行
:%s/10.5.5/10.1.1/g,查看替换

最终效果如下:
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.101 10.1.1.130;
  #option domain-name-servers 223.5.5.5,223.6.6.6;
  option domain-name "migaomei.cloud";
  #option routers 10.1.1.2;
  option broadcast-address 10.1.1.255;
  default-lease-time 600;
  max-lease-time 7200;
}

7. 启用服务并设置开机自启动

bash 复制代码
[root@server ~ 09:20:24]# systemctl enable dhcpd --now

8. 设置防火墙

bash 复制代码
[root@server ~ 09:42:16]# systemctl disable firewalld --now

9. 客户端验证

bash 复制代码
[root@client ~ 09:01:35]# nmcli c
NAME                UUID                                  TYPE      DEVICE 
ens32               41804fd8-9a16-47cb-96fb-5d627b9b8ab6  ethernet  ens32  
Wired connection 1  ae57b862-5db5-365d-82f9-888f5cb10b80  ethernet  ens33  
[root@client ~ 09:05:35]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens32            UP             10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64 
ens33            UP             10.1.1.101/24 fe80::c516:99d:ff41:72d3/64 

10. 根据mac地址绑定IP

例如00:0c:29:1a:e4:ba 绑定为10.1.1.11

先看一下硬件mac地址:

bash 复制代码
[root@client ~ 09:05:42]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:1a:e4:b0 brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:1a:e4:ba brd ff:ff:ff:ff:ff:ff

DHCP 服务配置文件中的主机绑定条目,作用是为指定 MAC 地址的主机分配固定的 IP 地址

bash 复制代码
[root@server ~ 09:25:55]# vim /etc/dhcp/dhcpd.conf
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.101 10.1.1.130;
  #option domain-name-servers 223.5.5.5,223.6.6.6;
  option domain-name "migaomei.cloud";
  #option routers 10.1.1.2;
  option broadcast-address 10.1.1.255;
  default-lease-time 600;
  max-lease-time 7200;
}

host fantasia {
  hardware ethernet 00:0c:29:1a:e4:ba;
  fixed-address 10.1.1.11;
}
参数 作用 注意事项
host fantasia 定义主机条目名称,仅用于配置文件可读性,可自定义 名称不能重复
hardware ethernet 指定主机的物理 MAC 地址 格式为 xx:xx:xx:xx:xx:xx,区分大小写
fixed-address 指定为该主机分配的固定 IP 地址 必须在 DHCP 服务的地址池范围内,且未被占用
bash 复制代码
[root@server ~ 09:20:19]# systemctl restart dhcpd

激活Wired connection 1 的网络连接配置文件**:**

bash 复制代码
[root@client ~ 09:19:39]# nmcli connection up Wired\ connection\ 1 #这条命令的作用是激活名为 Wired connection 1 的网络连接配置文件
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)

客户端验证:

bash 复制代码
[root@client ~ 09:22:06]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens32            UP             10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64 
ens33            UP             10.1.1.11/24 fe80::c516:99d:ff41:72d3/64
复制代码
 UNKNOWN        127.0.0.1/8 ::1/128 

ens32 UP 10.1.8.11/24 fe80::20c:29ff:fe1a:e4b0/64

ens33 UP 10.1.1.11/24 fe80::c516:99d:ff41:72d3/64

复制代码
相关推荐
BingoGo18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair2 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean3 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel