如何在 CentOS、RHEL 和 Fedora 上安装 DHCP 服务

简介:

DHCP(Dynamic Host Configuration Protocol)是一个网络协议,它使得服务器能从预定义的 IP 池中为网络中的客户端节点自动分配 IP 地址并提供其它相关的网络配置参数。

这意味着每次客户端节点启动(连接到网络)的时候,它都会获得一个和从不改变的“静态” IP 地址相反的“动态” IP 地址。DHCP 服务器给 DHCP 客户端分配 IP 地址称为“租约”,租约时间随客户端需要的连接时间或 DHCP 的配置而异。

在这篇指南中,我们会介绍如何在 CentOS/RHEL 和 Fedora 发行版中安装和配置 DHCP 服务。

设置测试环境

本次安装中我们使用如下的测试环境:

  • DHCP 服务器 - CentOS 7
  • DHCP 客户端 - Fedora 25 和 Ubuntu 16.04

DHCP 如何工作?

在进入下一步之前,让我们首先了解一下 DHCP 的工作流程:

  • 当已连接到网络的客户端计算机(配置为使用 DHCP)启动时,它会发送一个 DHCPDISCOVER 消息到 DHCP 服务器。
  • 当 DHCP 服务器接收到 DHCPDISCOVER 请求消息时,它会回复一个 DHCPOFFER 消息。
  • 客户端收到 DHCPOFFER 消息后,它再发送给服务器一个 DHCPREQUEST 消息,表示客户端已准备好获取 DHCPOFFER 消息中提供的网络配置。
  • 最后,DHCP 服务器收到客户端的 DHCPREQUEST 消息,并回复 DHCPACK 消息,表示允许客户端使用分配给它的 IP 地址。

第一步:在 CentOS 上安装 DHCP 服务

1、安装 DHCP 服务非常简单,只需要运行下面的命令即可。

 
 
  1. $ yum -y install dhcp
AI 代码解读

重要:假如系统中有多个网卡,但你想只在其中一个网卡上启用 DHCP 服务,可以按照下面的步骤在该网卡上启用 DHCP 服务。

2、 打开文件 /etc/sysconfig/dhcpd,将指定网卡的名称添加到 DHCPDARGS 列表,假如网卡名称为eth0,则添加:

 
 
  1. DHCPDARGS=eth0
AI 代码解读

保存文件并退出 。

第二步:在 CentOS 上配置 DHCP 服务

3、 对于初学者来说,配置 DHCP 服务的第一步是创建 dhcpd.conf 配置文件,DHCP 主要配置文件一般是 /etc/dhcp/dhcpd.conf(默认情况下该文件为空),该文件保存了发送给客户端的所有网络信息。

但是,有一个样例配置文件 /usr/share/doc/dhcp*/dhcpd.conf.sample,这是配置 DHCP 服务的良好开始。

DHCP 配置文件中定义了两种类型的语句:

  • 参数 - 说明如何执行任务、是否执行任务、或者给 DHCP 客户端发送什么网络配置选项。
  • 声明 - 指定网络拓扑、定义客户端、提供客户端地址、或将一组参数应用于一组声明。

因此,首先复制示例配置文件为主配置文件:

 
 
  1. $ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
AI 代码解读

4、 然后,打开主配置文件并定义你的 DHCP 服务选项:

 
 
  1. $ vi /etc/dhcp/dhcpd.conf
AI 代码解读

首先在文件开头设置以下应用于全部子网的全局参数(注意要使用你实际场景中的值):

 
 
  1. option domain-name "tecmint.lan";
  2. option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
  3. default-lease-time 3600;
  4. max-lease-time 7200;
  5. authoritative;
AI 代码解读

5、 然后,定义一个子网;在这个事例中,我们会为 192.168.56.0/24 局域网配置 DHCP(注意使用你实际场景中的值):

 
 
  1. subnet 192.168.56.0 netmask 255.255.255.0 {
  2. option routers 192.168.56.1;
  3. option subnet-mask 255.255.255.0;
  4. option domain-search "tecmint.lan";
  5. option domain-name-servers 192.168.56.1;
  6. range 192.168.56.10 192.168.56.100;
  7. range 192.168.56.120 192.168.56.200;
  8. }
AI 代码解读

第三步:为 DHCP 客户端分配静态 IP

只需要在 /etc/dhcp/dhcpd.conf 文件中定义下面的部分,其中你必须显式指定它的 MAC 地址和打算分配的 IP,你就可以为网络中指定的客户端计算机分配一个静态 IP 地址:

 
 
  1. host ubuntu-node {
  2. hardware ethernet 00:f0:m4:6y:89:0g;
  3. fixed-address 192.168.56.105;
  4. }
  5. host fedora-node {
  6. hardware ethernet 00:4g:8h:13:8h:3a;
  7. fixed-address 192.168.56.110;
  8. }
AI 代码解读

保存文件并关闭。

注意:你可以使用下面的命令找到 Linux 的 MAC 地址。

 
 
  1. $ ifconfig -a eth0 | grep HWaddr
AI 代码解读

6、 现在,使用下面的命令启动 DHCP 服务,并使在下次系统启动时自动启动:

 
 
  1. ---------- On CentOS/RHEL 7 ----------
  2. $ systemctl start dhcpd
  3. $ systemctl enable dhcpd
  4. ---------- On CentOS/RHEL 6 ----------
  5. $ service dhcpd start
  6. $ chkconfig dhcpd on
AI 代码解读

7、 另外,别忘了使用下面的命令允许 DHCP 服务通过防火墙(DHCPD 守护进程通过 UDP 监听67号端口):

 
 
  1. ---------- On CentOS/RHEL 7 ----------
  2. $ firewall-cmd --add-service=dhcp --permanent
  3. $ firewall-cmd --reload
  4. ---------- On CentOS/RHEL 6 ----------
  5. $ iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
  6. $ service iptables save
AI 代码解读

第四步:配置 DHCP 客户端

8、 现在,你可以为网络中的客户端配置自动从 DHCP 服务器中获取 IP 地址。登录到客户端机器并按照下面的方式修改以太网接口的配置文件(注意网卡的名称和编号):

 
 
  1. # vi /etc/sysconfig/network-scripts/ifcfg-eth0
AI 代码解读

添加下面的选项:

 
 
  1. DEVICE=eth0
  2. BOOTPROTO=dhcp
  3. TYPE=Ethernet
  4. ONBOOT=yes
AI 代码解读

保存文件并退出。

9、 你也可以在桌面服务器中按照下面的截图(Ubuntu 16.04桌面版)通过 GUI 设置 Method 为 Automatic (DHCP)

在客户端网络中设置 DHCP

在客户端网络中设置 DHCP

10、 按照下面的命令重启网络服务(你也可以通过重启系统):

 
 
  1. ---------- On CentOS/RHEL 7 ----------
  2. $ systemctl restart network
  3. ---------- On CentOS/RHEL 6 ----------
  4. $ service network restart
AI 代码解读

到了这里,如果所有设置都是正确的,你的客户端就应该能自动从 DHCP 服务器中获取 IP 地址。

原文发布时间为:2017-04-10

本文来自云栖社区合作伙伴“Linux中国”

目录
打赏
0
0
0
0
325
分享
相关文章
centos开启samba服务
通过以上步骤,您已成功在CentOS系统上安装、配置并启动了Samba服务,并且可以通过Windows或Linux客户端访问共享目录。Samba为跨平台文件共享提供了强大的支持,配置灵活且易于管理。无论是简单的家庭网络共享还是企业级文件服务器,Samba都能胜任。通过合理的配置和访问控制,您可以确保文件共享的安全性和便利性。
180 74
|
7天前
|
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
63 25
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
209 26
CentOS 7.8下使用kubeadm安装Kubernetes 1.26
这就是所有的前线报告,冒险家们,你们已经做好准备,开始在CentOS 7.8上通过Kubeadm安装Kubernetes 1.26的挑战了吗?走上这段旅程,让你的代码飞翔吧。
69 16
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
56 10
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
102 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
在CentOS 7.9中安装sshpass教程
如果在控制台显示出sshpass的使用方法,那就说明我们的大餐已经准备好,sshpass已经成功安装。 以上就是在 CentOS 7.9 中安装 sshpass 的彩色步骤,专业而生动,就像大厨在厨房一样顺利。
65 8
如何从CentOS7升级到8?CentOS8最新安装教程
从CentOS 7升级到8只需三步:清理系统、更换软件包及存储库、安装新内核与发布版本。首先确保系统最新并清理冗余包,接着替换基础系统包为CentOS 8版本,最后通过DNF工具完成内核更新与系统同步。整个过程需在终端执行,建议升级前备份VPS快照以防数据丢失。此方法可避免重装系统导致的数据清除问题,实现平滑升级。
138 6
|
12月前
|
如何在 Fedora 上安装 Rust?
如何在 Fedora 上安装 Rust?
219 0
如何在 Fedora 上安装 Rust?
ECS安装Fedora CoreOS操作系统版本34
ECS安装Fedora CoreOS操作系统版本34
635 0
ECS安装Fedora CoreOS操作系统版本34
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等