在Linux上使用Netplan進行網絡配置
譯文【51CTO.com快譯】Netplan是一個命令行程序,用于在某些Linux發行版上配置網絡;下面展示了它的使用方法。
多年來,Linux管理員和用戶一直都在以一種固定的方式配置了他們的網絡接口。例如,如果你是一個Ubuntu用戶,你可以通過桌面GUI或者從/etc/network/interfaces文件配置網絡連接。這種方法簡單而且也很好用。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 18.04)中,網絡的配置和控制發生了很大的變化。我們現在需要轉向Netplan,而不是使用接口文件和/etc/init.d/networking腳本。Netplan是一個命令行程序,用于配置某些Linux發行版上的網絡。Netplan使用YAML描述文件來配置網絡接口,并從這些描述中為任何給定的工具生成必要的配置選項。
我將向您展示如何在Linux上使用Netplan來配置靜態IP地址和DHCP地址。我將在Ubuntu Server 18.04上進行演示。需要提醒的是,你為Netplan創建的.yaml文件必須在間距上保持一致,否則它們將無法工作。你不必為每行使用特定的間距,只要保持一致就行了。
創建新的配置文件
打開一個終端窗口(或者通過SSH登錄到你的Ubuntu Server)。您將在/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來找出要使用的設備(如下圖)。
我將為設備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將自動恢復到以前的工作配置。如果新的配置工作,它將被應用。
應用新配置
如果您確定您的配置文件,您可以跳過try選項,直接應用新配置。對此的命令是:
- 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之前應用。你可以根據需要為您的服務器創建盡可能多的配置文件。
這就是全部
信不信由你,這就是使用Netplan的全部內容。雖然這對于我們之前所習慣的配置網絡地址的方式來說是一個重大的改變,但這并不難習慣。考慮到這種類型的配置將會在linux中變的越來越流行,你最終還是需要習慣它。
原文標題:How to Use the Netplan Network Configuration Tool on Linux,作者:JACK WALLEN
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】