通常,在大多數網絡配置中,IP地址是由路由器DHCP服務器動態分配的。在不同情況下,例如配置端口轉發或運行媒體服務器,可能需要設置靜態IP地址。本文介紹了如何在Ubuntu 20.04上設置靜態IP地址。
使用DHCP配置靜態IP地址
向LAN上的設備分配靜態IP地址的最簡單且建議的方法是在路由器上配置靜態DHCP。靜態DHCP或DHCP保留功能是大多數路由器上都可以使用的功能,每當設備向DHCP服務器請求地址時,它就會使DHCP服務器自動為特定的網絡設備分配相同的IP地址。通過將靜態IP分配給設備的唯一MAC地址來工作。
配置DHCP保留的步驟因路由器而異。有關更多信息,請查閱供應商的文檔。
網絡計划
Ubuntu 17.10和更高版本使用Netplan作為默認網絡管理工具。以前的Ubuntu版本正在使用ifconfig
及其配置文件/etc/network/interfaces
來配置網絡。
Netplan配置文件使用YAML語法編寫,帶有.yaml
文件擴展名。要使用Netplan配置網絡接口,您需要為該接口創建YAML描述,並且Netplan將為所選的渲染器工具生成所需的配置文件。
Netplan支持兩個渲染器:NetworkManager和Systemd-networked。NetworkManager通常在台式機上使用,而Systemd網絡在沒有GUI的服務器上使用。
在Ubuntu服務器上配置靜態IP地址
在Ubuntu 20.04上,系統使用“可預測的網絡接口名稱”標識網絡接口。
設置靜態IP地址的第一步是識別要配置的以太網接口的名稱。為此,請使用ip link
命令,如下所示:
ip link
該命令將打印所有可用網絡接口的列表。在此示例中,接口的名稱為ens3
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
Netplan配置文件存儲在/etc/netplan
目錄中。您可能會在此目錄中找到一個或多個YAML文件。文件的名稱可能因安裝程序而異。通常情況下,該文件是命名01-netcfg.yaml
,50-cloud-init.yaml
或NN_interfaceName.yaml
,但在你的系統中也可能會有所不同。
如果您的Ubuntu雲實例配置有cloud-init,則需要將其禁用。為此,請創建以下文件:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}
要在網絡接口上分配靜態IP地址,請使用文本編輯器打開YAML配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes
在更改配置之前,讓我們簡要解釋一下代碼。
每個Netplan Yaml文件都以具有network
至少兩個必需元素的密鑰開頭。第一個必需元素是網絡配置格式的版本,第二個是設備類型。該裝置類型可以是ethernets
,bonds
,bridges
,或vlans
。
上面的配置還有一行顯示renderer
類型。開箱即用,如果您在服務器模式下安裝Ubuntu,則渲染器配置為networkd
用作后端。
在設備的類型(ethernets
)下,您可以指定一個或多個網絡接口。在此示例中,我們只有一個接口ens3
配置為從DHCP服務器獲取IP尋址dhcp4: yes
。
要為ens3
接口分配靜態IP地址,請按以下步驟編輯文件:
- 將DHCP設置為
dhcp4: no
。 - 指定靜態IP地址。在下面
addresses:
可以添加一個或多個將分配給網絡接口的IPv4或IPv6 IP地址。 - 指定網關。
- 在下
nameservers
,設置名稱服務器的IP地址。
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: no
addresses:
- 192.168.121.221/24
gateway4: 192.168.121.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
編輯Yaml文件時,請確保遵循YAML代碼縮進標准。如果語法不正確,則更改將不會應用。
完成后,通過運行以下命令保存文件並應用更改:
sudo netplan apply
通過鍵入以下內容來驗證更改:
ip addr show dev ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.221/24 brd 192.168.121.255 scope global dynamic ens3
valid_lft 3575sec preferred_lft 3575sec
inet6 fe80::5054:ff:feb0:f500/64 scope link
valid_lft forever preferred_lft forever
您已為Ubuntu服務器分配了靜態IP。
在Ubuntu桌面上配置靜態IP地址
在Ubuntu桌面計算機上設置靜態IP地址不需要任何技術知識。
在“活動”屏幕中,搜索“設置”,然后單擊圖標。這將打開GNOME設置窗口。根據要修改的接口,在“網絡”或“ Wi-Fi”選項卡上單擊。要打開界面設置,請單擊界面名稱旁邊的齒輪圖標。
在“ IPV4”方法選項卡中,選擇“手動”,然后輸入您的靜態IP地址,網絡掩碼和網關。完成后,單擊“應用”按鈕。
要驗證更改,請使用Ctrl+Alt+T
鍵盤快捷鍵或單擊終端圖標打開終端,然后運行:
ip addr
輸出將顯示接口IP地址:
...
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 50:5b:c2:d8:59:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.121.221/24 brd 192.168.31.255 scope global dynamic noprefixroute wlp1s0
valid_lft 38963sec preferred_lft 38963sec
inet6 fe80::45e3:7bc:a029:664/64 scope link noprefixroute
結論
我們已經向您展示了如何在Ubuntu 20.04上配置靜態IP地址。