從Ubuntu 18.04.2版本開始,系統的網絡配置改成了新的 netplan.io 方式,棄用了之前使用的 ifupdown 方式。是以網絡配置檔案和配置方式和之前不同,本文介紹新的配置方式如何使用及與之前的差別。
注:ifupdown 就是用這個腳本 /etc/init.d/networking、systemctl start networking.service 啟動網絡服務的方式。
和Ubuntu16.04版本相比的變化:
- DNS解析設定改成了 systemd-resolved,不是在原先的配置檔案 /etc/resolv.conf 設定了。
- Ubuntu 18.04預設情況下不再安裝ifupdown,是以指令ifup和ifdown也不可用。可以使用ip指令來實作類似的功能,ip link set$device up 和 ip link set$device down。
- 之前Ubuntu16.04版本裡的網卡配置檔案 /etc/network/interfaces 不起作用了,改成了netplan方式。
-
如果新的 netplan 目前不能滿足使用者的網絡使用需求,ifupdown 軟體包仍然可以在Ubuntu 中使用和支援。
ifupdown安裝指令:apt install ifupdown
netplan是什麼?
netplan官網說它是一個在Linux系統中簡單友善配置網絡的程式,使用YAML格式的檔案進行配置。
YAML是什麼?傳送門
https://www.runoob.com/w3cnote/yaml-intro.htmlnetplan的工作方式
netplan 從配置檔案 /etc/netplan/*.yaml 讀取網絡配置,啟動後netplan在 /run 目錄中生成特定網卡名稱字尾的配置檔案,然後将網卡裝置的控制權移交給特定的網絡守護程式。
netplan 目前支援以下兩種服務
NetworkManager
Systemd-networkd

ubuntu18.04系統裡檢視網卡用netplan配置的資訊
root@ubuntu18:~# networkctl status eth0
● 2: eth0
Link File: /lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-eth0.network
Type: ether
State: routable (configuring)
Path: pci-0000:00:05.0
Driver: virtio_net
Vendor: Red Hat, Inc.
Model: Virtio network device
HW Address: 00:16:3e:2c:b5:e7 (Xensource, Inc.)
Address: 172.17.161.4
Gateway: 172.17.175.253
DNS: 100.100.2.136
100.100.2.138
如何使用netplan
配置檔案:/etc/netplan/*.yaml
指令:netplan apply
每個網卡都需要在 /etc/netplan 目錄中設定配置檔案,在配置中指定網卡ip資訊,使用DHCP或者靜态ip方式。
/etc/netplan/ 目錄下的配置檔案,擴充名為.yaml(例如 /etc/netplan/config.yaml),然後運作 netplan apply 此指令分析配置資訊并将其應用生效。
配置檔案示例:
#網卡eth0使用dhcp方式配置ip網絡,配置如下。yaml配置是用空格作為縮進對齊,不能使用tab鍵。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
dhcp6: no
#網卡eth0使用靜态ip方式,用關鍵字addresses指定ip位址和子網路遮罩(支援ipv4和ivp6),gateway4指定網關ip,nameservers 指定DNS。
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.10.10.2/24
gateway4: 10.10.10.1
nameservers:
search: [mydomain, otherdomain]
addresses: [10.10.10.1, 1.1.1.1]
配置檔案裡的關鍵字說明:
renderer:指定後端網絡服務,支援networkd(Systemd-networkd) 和 NetworkManager兩種,預設是networkd。
ethernets:指定是以太網配置,其他的還包括 wifis 或者 bridges
eth0:以太網網卡名稱
dhcp4:開啟使用ipv4的DHCP,預設是關閉。
dhcp6:開啟使用ipv6的DHCP,預設是關閉。
addresses:對應網卡配置的靜态ip位址,是ip/掩碼的格式,支援ipv6位址,例如 addresses: [192.168.14.2/24, "2001:1::1/64"]
gateway4, gateway6:指定IPv4/6預設網關,使用靜态ip配置時使用。例如IPv4: gateway4: 172.16.0.1 例如IPv6: gateway6: "2001:4::1"
nameservers:設定DNS伺服器和搜尋域。有兩個受支援的字段:addresses:是DNS位址清單,search:是搜尋域清單,沒有特殊需要可以不配置search這項。
更多配置項可以參考netplan.io文檔
https://netplan.io/reference#properties-for-device-type-ethernets後續文章:
為ECS Ubuntu 18.04執行個體配置輔助私網IP位址參考資料:
https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes?_ga=2.95559772.1903006392.1581236894-1245037056.1581236894 https://netplan.io