如何在Ubuntu以及Debian中安装DHCP服务器

动态主机配置协议(DHCP) 是一种用于使主机能够从服务器自动分配 IP 地址和相关的网络配置的网络协议。

DHCP 服务器分配给 DHCP 客户端的 IP 地址处于“租用”状态,租用时间通常取决于客户端计算机要求连接的时间或 DHCP 服务器配置的时间。

DHCP 如何工作?

以下是 DHCP 实际工作原理的简要说明:

  • 一旦客户端(配置为使用 DHCP 的机器)连接到网络后,它会向 DHCP 服务器发送 DHCPDISCOVER 数据包。
  • 当 DHCP 服务器收到 DHCPDISCOVER 请求报文后会使用 DHCPOFFER 包进行回复。
  • 然后客户端获取到 DHCPOFFER 数据包,并向服务器发送一个 DHCPREQUEST 包,表示它已准备好接收 DHCPOFFER 包中提供的网络配置信息。
  • 最后,DHCP 服务器从客户端收到 DHCPREQUEST 报文后,发送 DHCPACK 报文,表示现在允许客户端使用分配给它的 IP 地址。

在本文中,我们将介绍如何在 Ubuntu/Debian Linux 中设置 DHCP 服务器,我们将使用 sudo 命令来运行所有命令,以获得 root 用户权限。

测试环境设置

在这步中我们会使用如下的测试环境。

  • DHCP Server - Ubuntu 16.04
  • DHCP Clients - CentOS 7 and Fedora 25

步骤 1:在 Ubuntu 中安装 DHCP 服务器

1、 运行下面的命令来安装 DHCP 服务器包,也就是 dhcp3-server。


  1. $ sudo apt install isc-dhcp-server 

2、 安装完成后,编辑 /etc/default/isc-dhcp-server 使用 INTERFACES 选项定义 DHCPD 响应 DHCP 请求所使用的接口。

比如,如果你想让 DHCPD 守护进程监听 eth0,按如下设置:


  1. INTERFACES="eth0" 

同样记得为上面的接口配置静态地址。

步骤 2:在 Ubuntu 中配置 DHCP 服务器

3、 DHCP 配置的主文件是 /etc/dhcp/dhcpd.conf, 你必须填写会发送到客户端的所有网络信息。

并且 DHCP 配置中定义了两种不同的声明,它们是:

  • parameters - 指定如何执行任务、是否执行任务,还有指定要发送给 DHCP 客户端的网络配置选项。
  • declarations - 定义网络拓扑、指定客户端、为客户端提供地址,或将一组参数应用于一组声明。

4、 现在打开并修改主文件,定义 DHCP 服务器选项:


  1. $ sudo vi /etc/dhcp/dhcpd.conf 

在文件顶部设置以下全局参数,它们将应用于下面的所有声明(请指定适用于你情况的值):


  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; 

5、 现在定义一个子网,这里我们为 192.168.10.0/24 局域网设置 DHCP (请使用适用你情况的参数):


  1. subnet 192.168.10.0 netmask 255.255.255.0 { 
  2.   option routers                  192.168.10.1; 
  3.   option subnet-mask              255.255.255.0; 
  4.   option domain-search            "tecmint.lan"; 
  5.   option domain-name-servers      192.168.10.1; 
  6.   range   192.168.10.10   192.168.10.100; 
  7.   range   192.168.10.110   192.168.10.200; 

步骤 3:在 DHCP 客户端上配置静态地址

6、 要给特定的客户机分配一个固定的(静态)的 IP,你需要显式将这台机器的 MAC 地址以及静态分配的地址添加到下面这部分。


  1. host centos-node { 
  2.   hardware ethernet 00:f0:m4:6y:89:0g; 
  3.   fixed-address 192.168.10.105; 
  4. host fedora-node { 
  5.   hardware ethernet 00:4g:8h:13:8h:3a; 
  6.   fixed-address 192.168.10.106; 

保存并关闭文件。

7、 接下来,启动 DHCP 服务,并让它下次开机自启动,如下所示:


  1. ------------ SystemD ------------  
  2. $ sudo systemctl start isc-dhcp-server.service 
  3. $ sudo systemctl enable isc-dhcp-server.service 
  4. ------------ SysVinit ------------  
  5. $ sudo service isc-dhcp-server.service start 
  6. $ sudo service isc-dhcp-server.service enable 

8、 接下来不要忘记允许 DHCP 服务(DHCP 守护进程监听 67 UDP 端口)的防火墙权限:


  1. $ sudo ufw allow  67/udp 
  2. $ sudo ufw reload 
  3. $ sudo ufw show 

步骤 4:配置 DHCP 客户端

9、 此时,你可以将客户端计算机配置为自动从 DHCP 服务器接收 IP 地址。

登录到客户端并编辑以太网接口的配置文件(注意接口名称/号码):


  1. $ sudo vi /etc/network/interfaces 

定义如下选项:


  1. auto  eth0 
  2. iface eth0 inet dhcp 

保存文件并退出。重启网络服务(或重启系统):


  1. ------------ SystemD ------------  
  2. $ sudo systemctl restart networking 
  3. ------------ SysVinit ------------  
  4. $ sudo service networking restart 

另外你也可以使用 GUI 来在进行设置,如截图所示(在 Fedora 25 桌面中)设置将方式设为自动(DHCP)。

在 Fedora 中设置 DHCP 网络

此时,如果所有设置完成了,你的客户端应该可以自动从 DHCP 服务器接收 IP 地址了。

就是这样了!在本篇教程中,我们向你展示了如何在 Ubuntu/Debian 设置 DHCP 服务器。在反馈栏中分享你的想法。如果你正在使用基于 Fedora 的发行版,请阅读如何在 CentOS/RHEL 中设置 DHCP 服务器。

作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux SysAdmin 和 web 开发人员,目前是 TecMint 的内容创建者,他喜欢用电脑工作,并坚信分享知识。

作者:Aaron Kili

来源:51CTO

时间: 2024-11-02 06:06:06

如何在Ubuntu以及Debian中安装DHCP服务器的相关文章

如何在 Ubuntu/Fedora/Debian 中安装 GitLab

如何在 Ubuntu/Fedora/Debian 中安装 GitLab 在 Git 问世之前,分布式版本控制从来都不是一件简单的事.Git 是一个自由开源的软件,旨在轻松且快速地对从小规模到非常巨大的项目进行管理.Git 最开始由 Linus Torvalds 开发,他同时也是著名的 Linux 内核的创建者.在 git 和分布式版本控制系统领域中,GitLab 是一个极棒的新产品.它是一个基于 web 的 Git 仓库管理应用,包含代码审查.wiki.问题跟踪等诸多功能.使用 GitLab 可

Linux 有问必答:如何在Ubuntu或者Debian中编译安装ixgbe驱动

Linux 有问必答:如何在Ubuntu或者Debian中编译安装ixgbe驱动 提问: 我想为我的Intel 10G网卡下载安装最新的ixgbe驱动.我该如何在Ubuntu(或者Debian)中安装ixgbe驱动? Intel的10G网卡(比如,82598. 82599. x540)由ixgbe驱动支持.现代的Linux发行版已经带有了ixgbe驱动,通过可加载模块的方式使用.然而,有些情况你希望在你机器上的自己编译安装ixgbe驱动,比如,你想要体验ixbge驱动的最新特性时.同样,内核默认

如何在 Ubuntu 15.04 中安装 puppet

如何在 Ubuntu 15.04 中安装 puppet 大家好,本教程将学习如何在 ubuntu 15.04 上面安装 puppet,它可以用来管理你的服务器基础环境.puppet 是由 puppet 实验室Puppet Labs开发并维护的一款开源的配置管理软件,它能够帮我们自动化供给.配置和管理服务器的基础环境.不管我们管理的是几个服务器还是数以千计的计算机组成的业务报表体系,puppet 都能够使管理员从繁琐的手动配置调整中解放出来,腾出时间和精力去提系统的升整体效率.它能够确保所有自动化

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行 提问:我运行的是Ubuntu桌面,但是我希望启动后临时进入命令行.有什么简便的方法可以启动进入终端? Linux桌面自带了一个显示管理器(比如:GDM.KDM.LightDM),它们可以让计算机启动自动进入一个基于GUI的登录环境.然而,如果你要直接启动进入终端怎么办? 比如,你在排查桌面相关的问题或者想要运行一个不需要GUI的应用程序. 注意虽然你可以通过按下Ctrl+Alt+F1到F6临时从桌面GUI切换到虚拟终端.

如何在 Ubuntu 13.10 中安装 Gnome 3.10

厌倦 Unity 了吗?或者说就是不喜欢它?为何不试试在 Ubuntu 13.10 中安装 Gnome 3.10?安装一个新的桌面环境是为数不多的安装Ubuntu 13.10后要做的事之一,如果你想要尝试一下.在这篇快速教程中我们将会分享如何在 Ubuntu 13.10 中安装 Gnome 3.10. 在 Ubuntu 13.10 中安装 Gnome 3.10: 我们将花费一些时间来使用几个 PPA 安装 Gnome 3.10 和分配升级.我假设你网速不错,如果不是的话,你可以使用一些小技巧来提

《第一本Docker书(修订版)》——2.2 在Ubuntu和Debian中安装Docker

2.2 在Ubuntu和Debian中安装Docker 目前,官方支持在以下版本的Ubuntu和Debian中安装Docker: Ubuntu Wily 15.10(64位): Ubuntu Vivid 15.04(64位): Ubuntu Trusty 14.04(LTS)(64位): Ubuntu Precise 12.04(LTS)(64位): Ubuntu Raring 13.04(64位): Ubuntu Saucy 13.10(64位): Debian 8.0 Jessie(64位)

如何在Ubuntu 14.04中安装最新版Eclipse

想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版本中进行快速安装. 1.安装OpenJDK Java 7 如果你的系统中没有安装 Java,我们需要按如下步骤事先安装好 OpenJDK Java 7

如何在Ubuntu 14.04中配置PXE服务器

PXE(预启动执行环境Preboot Execution Environment) 服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装.如果你客户端的计算机没有 CD/DVD 或USB 引导盘,或者如果你想在大型企业中同时安装多台计算机,那么 PXE 服务器可以帮你节省时间和金钱. 在这篇文章中,我们将告诉你如何在 Ubuntu 14.04 配置 PXE 服务器. 配置网络 开始前,你需要先设置 PXE 服务器使用静态 IP.在你

如何在Ubuntu 16.04中安装Ceph存储集群

Ceph 是一个高性能.可靠.可扩展的开源存储平台.它是一个自由的分布式存储系统,提供了对象.块和文件级存储的接口,并可以不受单点故障的影响而运行. 在这个教程中,我将指导你在 Ubuntu 16.04 服务器上安装建立一个 Ceph 集群.Ceph 集群包括这些组件: Ceph OSD (ceph-osd) - 控制数据存储,数据复制和恢复.Ceph 集群需要至少两个 Ceph OSD 服务器.这次安装中我们将使用三个 Ubuntu 16.04 服务器. Ceph Monitor (ceph-