如何在 Linux 上安裝和配置 DHCP 服務器


DHCP(動態主機配置協議的縮寫)動態地將唯一的 IP 地址和其他信息分配給客戶端系統。 DHCP 分配的一些信息包括主機名、域名、默認網關和 DNS 服務器的 IP 地址。系統管理員可以避免手動為每個客戶端系統分配 IP 地址和相關信息。在家庭和小型企業設置中,路由器通常充當 DHCP 服務器。但是,對於較大的設置,應將專用服務器配置為 DHCP 服務器。 在 Linux 上,您可以輕鬆設置 DHCP 服務器為您的客戶端分配 IP 地址。

本教程展示瞭如何在 Linux 上配置 DHCP 以自動為客戶端分配 IP 地址。

DHCP 的工作原理

讓我們稍微談談 DHCP 的工作原理。

考慮客戶端和 DHCP 服務器連接到同一個有線網絡的場景。

  1. 客戶端機器開機時發送廣播消息 DHCP 檢測 到您網絡上的所有設備。
  2. 當此消息到達 DHCP 服務器時,DHCP 服務器 DHCP 提供 包含發送給客戶端的 IP 地址的消息。
  3. 那麼客戶應該 DHCP 請求 從 DHCP 服務器請求此 IP 地址。
  4. 然後 DHCP 服務器將發送它。 DHCPACK 檢查請求並提供客戶端 IP 地址。

先決條件

  • 最少 2 台 Linux 機器(用於 DHCP 服務器和客戶端)
  • 用戶的 sudo 權限
  • 使用 DHCP 服務器配置的靜態 IP

筆記:

出於演示目的,我在同一個 LAN 上使用了 3 台 Linux 機器。您可以將它們視為通過交換機相互連接。

DHCP 服務器

對於使用的 DHCP 服務器:

  • 具有靜態 IP ‘192.168.9.1’ 和主機名 ‘ubuntu’ 的 Ubuntu 20.04 LTS

DHCP客戶端

我們為 DHCP 客戶端使用了兩台機器:

  • 主機名為“mypc”的 Ubuntu 20.04
  • 主機名為“mint”的 Mint 20

安裝 DHCP 服務器

首先,更新系統上的系統存儲庫索引。為此,請在終端中發出以下命令:

$ sudo apt update

通過在終端中發出以下命令來安裝 DHCP 服務器:

$ sudo apt-get install isc-dhcp-server -y

DHCP 服務器配置

在將您的 Linux 系統配置為 DHCP 服務器之前,請確保它已配置靜態 IP 地址,以便客戶端可以輕鬆連接到它。否則,客戶端將很難找到要連接的 DHCP 服務器。

裡面 /etc/default/isc-dhcp-server 該文件必須指定 DHCP 服務器偵聽的接口。要編輯此文件,請在終端中發出以下命令:

$ sudo nano /etc/default/isc-dhcp-server

裡面 接口 v4e首先指定DHCP服務器監聽的接口,如ens33、eth0、eth1。

INTERFACESv4="interface_name"

在這種情況下,接口是 ens33,因此條目更改為:

INTERFACESv4="ens33"

配置文件後,保存並關閉它。

然後使用位於以下位置的默認配置文件配置 DHCP 服務器: /etc/dhcp/dhcpd.conf.

編輯 /etc/dhcp/dhcpd.conf 這些文件是:

$ sudo nano /etc/dhcp/dhcpd.conf

刪除並取消註釋以下行 # 前面的符號。

authoritative;

安裝 DHCP Linux

還將以下行添加到文件中:

default-lease-time 600;

max-lease-time 7200;

# subnet

subnet 192.168.9.0 netmask 255.255.255.0 {

# range of subnet

range 192.168.9.5 192.168.9.15;

# gateway address

option routers 192.168.9.1;

# DNS server address

option domain-name-servers 8.8.8.8, 8.8.4.4;

}

配置文件後,保存並關閉它。

從 DHCP 服務器為客戶端分配靜態 IP 地址

默認情況下,DHCP 服務器向客戶端發布動態 IP 地址。但是,它也可以配置為向客戶端分配固定或靜態 IP 地址。某些網絡設備(打印機、路由器等)或需要從外部遠程連接的設備需要固定地址。要將靜態 IP 地址分配給特定機器,您需要其 MAC 地址。

假設您要為客戶端分配 MAC 地址。 00:0c:29:c1:d5:d4 固定IP 192.168.1.13 每次。

編輯 /etc/dhcp/dhcpd.conf 打開該文件並添加一個主機條目,其中包含您要分配給客戶端的客戶端 MAC 地址和靜態 IP 地址。

host mint {

hardware ethernet 00:0c:29:c1:d5:d4;

fixed-address 192.168.9.13;

}

筆記: 不要從動態 IP 範圍中獲取靜態 IP 地址。

現在,每當具有匹配 MAC 地址 (00:0c:29:c1:d5:d4) 的客戶端向 DHCP 服務器發送 DHCPDISCOVER 消息時,它都會收到相同的 IP 地址 192.168.9.13。

重新啟動 DHCP 服務

配置完成後,重啟DHCP Server服務。為此,請在終端中發出以下命令:

$ sudo systemctl restart isc-dhcp-server.service

使用以下命令檢查 DHCP 服務器的狀態:

$ sudo systemctl status isc-dhcp-server.service

以下輸出顯示 DHCP 服務處於活動狀態並且成功運行且沒有錯誤。

DHCP 客戶端配置

接下來,配置兩台客戶端機器。從配置文件中定義的子網範圍為客戶端分配一個隨機 IP。另一個客戶端被分配了一個靜態 IP。

默認情況下,在 Ubuntu 操作系統中配置了動態 IP 地址。但是,如果您使用靜態 IP 地址,則可以將其配置為從 DHCP 服務器獲取 IP 地址。

客戶端 1 – 從 DHCP 服務器獲取動態 IP 地址。

首先使用以下命令找到網絡接口名稱:

$ ifconfig

找到接口名稱後,在終端中發出以下命令來配置網絡接口:

$ sudo nano /etc/network/interfaces

將以下行插入文件中。

auto <interface_name>

iface <interface_name>inet dhcp

在我們的例子中,它看起來像這樣:

auto ens33

iface ens33 inet dhcp

保存並關閉文件並在終端中使用以下命令重新啟動網絡管理器服務:

$ sudo systemctl restart network-manager.service

然後運行 ifconfig 命令檢查客戶端的 IP 地址。

$ ifconfig

在下面的輸出中,我們可以看到客戶端從 DHCP 服務器配置中定義的子網範圍接收到 IP 地址 192.168.9.5。

要查找 DHCP 服務器的 IP 地址,請在終端中發出以下命令:

$ sudo grep -R “DHCPOFFER” /var/sys/log

從輸出中,我們可以看到 IP 地址是由 192.168.9.1 分配的。這是您的 DHCP 服務器的 IP 地址。

如果客戶端機器沒有從 DHCP 服務器獲得 IP 地址,請使用以下命令釋放/更新 IP 地址。

$ sudo dhclient -r 

$ sudo dhclient -v

現在跑步 如果配置 運行命令以找出客戶端的 IP 地址。這一次,我希望客戶端從 DHCP 服務器收到一個 IP 地址。

客戶端 2 – 從 DHCP 服務器獲取靜態 IP 地址。

在第二台客戶端機器上,我在 DHCP 服務器配置文件中添加了一個靜態/固定 IP 地址條目。在客戶端計算機上,首先配置接口以從 DHCP 服務器獲取 IP 地址。

使用以下命令查找網絡接口名稱:

$ ifconfig

找到接口名稱後,在終端中發出以下命令來配置網絡接口:

$ sudo nano /etc/network/interfaces

將以下行插入文件中。

auto <interface_name>
iface <interface_name>inet dhcp

在我們的例子中,它看起來像這樣:

auto ens33

iface ens33 inet dhcp

保存並關閉文件並在終端中使用以下命令重新啟動網絡管理器服務:

$ sudo systemctl restart network-manager.service

然後運行 ifconfig 命令檢查客戶端的 IP 地址。

$ ifconfig

在下面的輸出中,我們可以看到客戶端從 DHCP 服務器接收到靜態 IP 地址 192.168.9.13。這與您添加到 DHCP 配置文件中的靜態 IP 地址相同。

要查找 DHCP 服務器的 IP 地址,請在終端中發出以下命令:

$ sudo grep -R “DHCPOFFER” /var/sys/log

從輸出中,我們可以看到 IP 地址是由 DHCP 服務器 192.168.9.1 分配的。

如果客戶端機器沒有從 DHCP 服務器獲得 IP 地址,請使用以下命令釋放/更新 IP 地址。

$ sudo dhclient –r -v

$ sudo dhclient -v

現在跑步 如果配置 運行命令以找出客戶端的 IP 地址。這一次,我希望客戶端從 DHCP 服務器收到一個 IP 地址。

查看DHCP服務器分配的IP地址

您還可以從您的 DHCP 服務器中找出要分配給您的客戶端的動態地址。

在 DHCP 服務器機器上,在終端中運行以下命令以列出 DHCP 服務器分配的地址。

$ dhcp-lease-list

下面的輸出僅顯示了 DHCP 服務器動態分配給客戶端的 IP 地址。 請注意,DHCP 服務器發布的靜態 IP 地址未列出。

在本文中,您學習瞭如何在 Linux 系統上安裝和配置 DHCP 服務器,以便為客戶端分配動態和靜態 IP 地址。只需幾個簡單的步驟,即可在您的 Linux 機器上配置 DHCP 服務器。配置完成後,分配的 IP 地址和相關信息會自動分配給網絡上的每台機器。