閱讀843 返回首頁    go 人物


如何在 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;
  8. }

步驟 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. }
  5. host fedora-node {
  6. hardware ethernet 00:4g:8h:13:8h:3a;
  7. fixed-address 192.168.10.106;
  8. }

保存並關閉文件。

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 網絡

在 Fedora 中設置 DHCP 網絡

此時,如果所有設置完成了,你的客戶端應該可以自動從 DHCP 服務器接收 IP 地址了。

就是這樣了!在本篇教程中,我們向你展示了如何在 Ubuntu/Debian 設置 DHCP 服務器。在反饋欄中分享你的想法。如果你正在使用基於 Fedora 的發行版,請閱讀如何在 CentOS/RHEL 中設置 DHCP 服務器。

原文發布時間為:2017-03-29

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-23 15:35:37

  上一篇:go  NMAP 常用掃描簡介(一)
  下一篇:go  SSH 安全加固篇:通過“運維密碼”小程序實現 SSH 雙因子認證