在您的 IT 環境中,有時您可能不得不配置靜態 IP,而不是依賴 DHCP 協議。 一個完美的 example 是當您將 Ubuntu 服務器設置為組織的文件或 Web 服務器時。 顧名思義,靜態 IP 可確保系統的 IP 地址保持不變。 使用 DHCP,一旦 IP 地址的租用時間到期,IP 地址就會更改,這對於服務器來說是不可取的。
在本指南中,我們將探索在 Ubuntu 20.04 上手動分配靜態 IP 的兩種方法。 我們將演示如何在 Ubuntu 服務器和 Ubuntu 桌面實例上配置靜態 IP。
在 Ubuntu 服務器 20.04 上分配靜態 IP
從 Ubuntu 17.10 及更高版本開始,網絡由 網絡計劃 特徵。 Netplan 的配置文件位於 /etc/netplan
目錄並用 YAML 編寫。 在這個目錄中,你會發現 YAML 配置文件標記為 50-cloud-init.yaml
, 或者 00-installer-config.yaml
.
但是,如果您正在運行 Ubuntu 的雲實例,則它可能由 云初始化 它通過利用 DHCP 協議自動為其分配 IP 地址。 在我們繼續之前,您需要禁用 cloud-init。 要實現這一點,請打開 subiquity-disable-cloudinit-networking.cfg
cloud-init 配置文件在 /etc/cloud/cloud.cfg.d/
目錄
$ sudo vim /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
設置 ‘網絡‘指令’殘疾‘。
network: {config: disabled}
Save 更改並退出。 接下來,轉到 Netplan 配置文件。 就我而言,我有 00-installer-config.yaml
文件。
$ sudo vim /etc/netplan/00-installer-config.yaml
從配置文件中,我們可以看到’網絡’ 具有 2 個元素的指令。 第一個是’以太網‘ 指定網絡接口,第二個是渲染器的版本,它是 ‘系統聯網‘ 用於非 GUI 實例和 NetworkManager 用於 Ubuntu 桌面(帶 GUI)

我們將設置 ‘dhcp4‘值’不‘ 禁用 DHCP 協議並指定接口的靜態 IP,如下所示。
將靜態 IP 地址分配給 ens3
界面,修改文件如下:
- 指定服務器的靜態 IP 地址。 在裡面
addresses
: 部分,指定要分配給網絡接口的 IPv4 地址。 - 接下來,指定網關。
- 在下面
nameservers
, 指定名稱服務器的 DNS 或 IP 地址。 在這裡,我們指定了谷歌的 DNS 8.8.8.8 和路由器的 IP。
network:
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.2.150/24]
gateway4: 192.168.2.1
nameservers:
addresses: [8.8.8.8, 192.168.2.1]

Save YAML 文件並退出。 要應用所做的更改,請運行以下命令:
$ sudo netplan apply
您可以使用 ifconfig 或 ip 命令來驗證您的網絡接口是否設置為使用剛才配置的靜態 IP。

此外,您可以使用 IP route show 命令來顯示系統上的新路由。
$ ip route show

完美的! 我們已經在 Ubuntu 服務器上成功配置了一個靜態 IP。 現在讓我們換個角度,看看如何在 Ubuntu 桌面 20.04 上複製相同的內容
在 Ubuntu 20.04 桌面上配置靜態 IP
如果您運行的是桌面 GUI,那麼配置靜態 IP 應該很容易。 單擊“網絡圖標‘ 在屏幕的右上角,然後選擇 ‘有線設置‘ 選項。

這打開了 ‘網絡‘ 配置頁面。 在裡面 ‘有線‘ 部分,單擊齒輪圖標。

這將顯示您當前 IP 配置的摘要。 默認情況下,系統通過 DHCP 協議獲取其 IP 配置。 我們將從使用 DHCP 更改為手動。

因此,單擊“IPv4‘ 選項卡,將您定向到此部分。 正如預期的那樣,DHCP 已打開。

切換自 ‘自動 (DHCP)‘ 到 ‘手動的‘。 然後指定靜態 IPv4 地址,包括網絡掩碼、網關和 DNS 服務器。 要保存更改,請單擊“申請‘ 按鈕。

回到’網絡’ 部分並通過關閉和打開來重新啟動網絡服務。

再次單擊齒輪圖標並確認已反映靜態 IP 設置。

就這麼簡單。 我們已經在 Ubuntu 桌面上成功配置了一個靜態 IP。
結論
與大多數其他系統一樣,Ubuntu 配置了 DHCP,以從 DHCP 服務器或路由器獲取 IP。 在本指南中,我們介紹瞭如何在命令行和 GUI 上應用靜態 IP 設置。 在設置靜態 IP 之前,始終建議保留要分配給路由器上服務器的 IP。 同樣重要的是確保沒有其他客戶端系統正在使用該 IP 地址以避免 IP 衝突。