安裝Ubuntu Server 18.04后需要分配一個的靜態IP地址。先前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置靜態IP地址,但是Ubuntu 18.04使用稱為netplan的新方法。
在本教程中,我們將學習如何使用netplan在Ubuntu Server 18.04中配置網絡接口。我們將研究如何設置靜態IP地址,默認網關和DNS名稱服務器。
- 使用ip命令標識可用的網絡接口
- Netplan和YAML格式的界面配置文件
- 分配靜態IP地址(IPv4)
- 在Ubuntu Server上配置靜態IPv6地址
- 將多個IP地址分配給一個網絡接口
- 配置多個網絡接口
使用ip命令識別可用的網絡接口
在配置靜態IP地址之前,需要標識Ubuntu Server 18.04上的可用網絡接口以及分配給特定網絡接口的設備ID是什么。
ip link show

要查看當前的IP配置,運行ip addr命令:
ip addr
輸出將顯示所有網絡接口的當前分配的IP配置。

Netplan和YAML格式的界面配置文件
Ubuntu 18.04使用一種稱為netplan的新方法。在netplan中,接口配置文件位於/etc/netplan目錄中,並且配置文件具有.yaml擴展名。YAML語法非常容易理解,只需要知道網絡配置所需的內容。
列出/etc/netplan目錄的內容,看到帶有yaml擴展名的接口配置文件。

在我的Ubuntu Server中,該文件的名稱為50-cloud-init.yaml,但可以根據安裝類型使用其他名稱進行保存。
安裝類型 | 接口文件名 |
Ubuntu服務器實時ISO /雲 | 50-cloud-init.yaml |
Ubuntu Server ISO(備用Ubuntu Server安裝程序) | 01-netcfg.yaml |
Ubuntu桌面ISO | 01-網絡管理器-all.yaml |
在我的Ubuntu Server上,文件內容如下所示:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
通過僅查看最后一行:“ dhcp4:yes”,可以說以太網接口enp0s3已配置為從DHCP服務器租用IP地址。如果打算從DHCP服務器分配動態IP地址,則需要此配置。
分配靜態IP地址(IPv4)
這是帶有靜態IP分配(IPV4)的樣本netplan配置文件,在此配置中,接口enp0s3已配置為IP 192.168.1.100和默認網關192.168.1.1。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
為了應用配置,運行netplan命令:
sudo netplan apply
然后,運行ip add命令以確保已應用更改:
ip add
如何運作
在上面的示例中,將enp0s3以太網接口配置為使用靜態IP地址192.168.1.100。
第一行:“版本:2”表示此配置塊使用netplan版本2格式。
network:
version: 2
下一行:“ renderer:networkd”告訴此接口由systemd-networkd服務管理。
renderer: networkd
如果接口由NetworkManager管理,則networkd的替代選項是NetworkManager。如果查看Ubuntu 18.04桌面的netplan配置文件,則將renderer選項設置為NetworkManager,因為在圖形桌面環境中,界面由NetworkManager管理。
接下來,開始接口配置:
ethernets:
enp0s3:
這里,enp0s3是接口的名稱,可以運行ip link show命令來列出Ubuntu Server上的網絡接口。
接着,將靜態IP設置為192.168.1.100,網絡掩碼為24:
addresses:
- 192.168.1.100/24
地址選項也可以按以下格式定義:
addresses: [192.168.0.101/24]
接下來,將默認網關設置為192.168.1.1:
gateway4: 192.168.1.1
使用選項gateway4,因為它是IPv4網關。對於IPv6網關,需要使用gateway6選項。
接下來,將DNS服務器設置為8.8.8.8和4.4.4.4。
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
應用新的接口配置,運行netplan命令:
sudo netplan apply
該命令會將當前的netplan配置應用於正在運行的系統。不再需要重新啟動網絡來應用更改。
在Ubuntu Server上配置靜態IPv6地址
使用相同的netplan格式分配IPv6地址,唯一的區別是,需要使用gateway6選項而不是gateway4。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 2001:1::1/64
gateway6: 2001:1::2
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
將多個IP地址分配給單個網絡接口
單個網絡接口配置有多個IP地址是很常見的。以下是示例Ubuntu netplan配置文件,其中將兩個IPv4地址分配給一個網絡接口。
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
地址選項也可以采用以下格式編寫:
addresses: [192.168.1.100/24, 192.168.1.101/24]
可以使用IPv4和IPv6地址配置單個網絡接口,如以下netplan文件所示:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
- 2001:1::1/64
gateway4: 192.168.1.1
gateway6: 2001:1::2
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
配置多個網絡接口
在單個服務器上安裝多個網絡接口是很常見的。這是一個示例netplan文件,為兩個網卡配置了靜態地址:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
enp0s8:
addresses:
- 10.10.10.2/24
注意,只有主接口已配置了默認網關,在本例中為enp0s3。有多個默認網關是不實際的,默認網關是沒有其他路由時發送流量的地址。
再看另一個同時使用靜態和DHCP地址的netplan示例:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 4.4.4.4]
wifis:
wlp3s0:
dhcp4: yes
access-points:
#configure SSID and wifi password
"my_ssid":
password: "my-wifi-password"
在前面的示例中,wifi接口wlp3s0已配置為從DHCP服務器租用IP地址。
總結
在本教程中,我們學習了如何在Ubuntu 18.04上配置靜態IP地址,在該版本中不再使用舊的/etc/network/interfaces文件。Ubuntu 18現在使用稱為netplan的新方法來管理網絡。使用Netplan,網絡接口的配置文件以YAML數據格式放在/etc/netplan目錄中,而netplan命令用於在配置更改后重新啟動網絡。