1. 程式人生 > >Linux 上使用網路配置工具 Netplan | Linux 中國

Linux 上使用網路配置工具 Netplan | Linux 中國

Linux 發行版上配置網路。-- Jack Wallen 有用的原文連結請訪問文末的“原文連結”獲得可點選的文內連結、全尺寸原圖和相關文章。 致謝編譯自 |  https://www.linux.com/learn/intro-to-linux/2018/9/how-use-netplan-network-configuration-tool-linux   作者 | Jack Wallen  譯者 | LuMing (LuuMing) ??共計翻譯:5.0 篇 貢獻時間:45 天 netplan 是一個命令列工具,用於在某些 Linux 發行版上配置網路。

多年以來 Linux 管理員和使用者們以相同的方式配置他們的網路介面。例如,如果你是 Ubuntu 使用者,你能夠用桌面 GUI 配置網路連線,也可以在 /etc/network/interfaces 檔案裡配置。配置相當簡單且可以奏效。在檔案中配置看起來就像這樣:

auto enp10s0

iface enp10s0 inet static

address 192.168.1.162

netmask 255.255.255.0

gateway 192.168.1.100

dns-nameservers 1.0.0.1,1.1.1.1

儲存並關閉檔案。使用命令重啟網路:

sudo systemctl restart networking

或者,如果你使用不帶 systemd 的發行版,你可以通過老辦法來重啟網路:

sudo /etc/init.d/networking restart

你的網路將會重新啟動,新的配置將會生效。

這就是多年以來的做法。但是現在,在某些發行版上(例如 Ubuntu Linux 18.04),網路的配置與控制發生了很大的變化。不需要那個 interfaces 檔案和 /etc/init.d/networking 指令碼,我們現在轉向使用 Netplan[1]。Netplan 是一個在某些 Linux 發行版上配置網路連線的命令列工具。Netplan 使用 YAML 描述檔案來配置網路介面,然後,通過這些描述為任何給定的呈現工具生成必要的配置選項。

我將向你展示如何在 Linux 上使用 Netplan 配置靜態 IP 地址和 DHCP 地址。我會在 Ubuntu Server 18.04 上演示。有句忠告,你建立的 .yaml 檔案中的縮排必須保持一致,否則將會失敗。你不用為每行使用特定的縮排間距,只需保持一致就行了。

新的配置檔案

開啟終端視窗(或者通過 SSH 登入進 Ubuntu 伺服器)。你會在 /etc/netplan 資料夾下發現 Netplan 的新配置檔案。使用 cd /etc/netplan 命令進入到那個資料夾下。一旦進到了那個資料夾,也許你就能夠看到一個檔案:

01-netcfg.yaml

你可以建立一個新的檔案或者是編輯預設檔案。如果你打算修改預設檔案,我建議你先做一個備份:

sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

備份好後,就可以開始配置了。

網路裝置名稱

在你開始配置靜態 IP 之前,你需要知道裝置名稱。要做到這一點,你可以使用命令 ip a,然後找出哪一個裝置將會被用到(圖 1)。

圖 1:使用 ip a 命令找出裝置名稱

我將為 ens5 配置一個靜態的 IP。

配置靜態 IP 地址

使用命令開啟原來的 .yaml 檔案:

sudo nano /etc/netplan/01-netcfg.yaml

檔案的佈局看起來就像這樣:

network:

   Version: 2

   Renderer: networkd

   ethernets:

      DEVICE_NAME:

         Dhcp4: yes/no

         Addresses: [IP/NETMASK]

         Gateway: GATEWAY

         Nameservers:

            Addresses: [NAMESERVER, NAMESERVER]

其中:

◈ DEVICE_NAME 是需要配置裝置的實際名稱。◈ yes/no 代表是否啟用 dhcp4。◈ IP 是裝置的 IP 地址。◈ NETMASK 是 IP 地址的掩碼。◈ GATEWAY 是閘道器的地址。◈ NAMESERVER 是由逗號分開的 DNS 伺服器列表。 這是一份 .yaml 檔案的樣例:

network:

   version: 2

   renderer: networkd

   ethernets:

      ens5:

      dhcp4: no

      addresses: [192.168.1.230/24]

      gateway4: 192.168.1.254

      nameservers:

         addresses: [8.8.4.4,8.8.8.8]

編輯上面的檔案以達到你想要的效果。儲存並關閉檔案。

注意,掩碼已經不用再配置為 255.255.255.0 這種形式。取而代之的是,掩碼已被新增進了 IP 地址中。

測試配置

在應用改變之前,讓我們測試一下配置。為此,使用命令:

sudo netplan try

上面的命令會在應用配置之前驗證其是否有效。如果成功,你就會看到配置被接受。換句話說,Netplan 會嘗試將新的配置應用到執行的系統上。如果新的配置失敗了,Netplan 會自動地恢復到之前使用的配置。成功後,新的配置就會被使用。

應用新的配置

如果你確信配置檔案沒有問題,你就可以跳過測試環節並且直接使用新的配置。它的命令是:

sudo netplan apply

此時,你可以使用 ip a 看看新的地址是否正確。

配置 DHCP

雖然你可能不會配置 DHCP 服務,但通常還是知道比較好。例如,你也許不知道網路上當前可用的靜態 IP 地址是多少。你可以為裝置配置 DHCP,獲取到 IP 地址,然後將那個地址重新配置為靜態地址。

在 Netplan 上使用 DHCP,配置檔案看起來就像這樣:

network:

   version: 2

   renderer: networkd

   ethernets:

      ens5:

      Addresses: []

      dhcp4: true

      optional: true

儲存並退出。用下面命令來測試檔案:

sudo netplan try

Netplan 應該會成功配置 DHCP 服務。這時你可以使用 ip a 命令得到動態分配的地址,然後重新配置靜態地址。或者,你可以直接使用 DHCP 分配的地址(但看看這是一個伺服器,你可能不想這樣做)。

也許你有不只一個的網路介面,你可以命名第二個 .yaml 檔案為 02-netcfg.yaml 。Netplan 會按照數字順序應用配置檔案,因此 01 會在 02 之前使用。根據你的需要建立多個配置檔案。

就是這些了