SEARCH

ubuntu固定ip:如何在Ubuntu上設置靜態IP地址(Netplan/NetworkManager詳細教程)

在企業級應用、家庭伺服器搭建或任何需要穩定網路連接的場景中,為Ubuntu系統設置一個固定IP地址,即靜態IP地址,是確保服務可靠運行的關鍵步驟。動態IP地址(DHCP分配)雖然方便,但其隨機變化性可能導致埠轉發失敗、SSH連接中斷或內部服務發現困難。本文將深入探討如何在不同Ubuntu版本和環境下,通過Netplan(推薦用於現代Ubuntu伺服器和部分桌面版)和NetworkManager(推薦用於Ubuntu桌面版圖形界面)這兩種主要方式,實現Ubuntu固定IP的配置,並提供詳細步驟和常見問題解答。

為何需要為Ubuntu設置固定IP地址?

理解為何需要固定IP地址是配置的第一步。以下是一些主要原因:

1. 伺服器和服務的穩定性

  • 埠轉發: 如果您在Ubuntu上運行Web伺服器(如Apache/Nginx)、資料庫(如MySQL/PostgreSQL)、Git服務(如GitLab)或任何需要從外部網路訪問的服務,路由器上的埠轉發規則需要一個固定的內網IP地址才能始終將流量正確引導到您的Ubuntu機器。
  • 遠程訪問(SSH/RDP): 通過SSH或遠程桌面協議(RDP)從其他設備訪問Ubuntu時,固定的IP地址可以避免因IP變化而導致的連接失敗。
  • DNS解析: 在內網環境中,您可能希望將自定義域名解析到您的Ubuntu伺服器。如果伺服器IP頻繁變動,DNS記錄將失效。

2. 網路管理和可預測性

  • 內部服務發現: 在複雜的網路環境中,其他內部設備或服務(例如網路存儲、印表機、智能家居控制器)可能需要通過IP地址來發現和連接您的Ubuntu設備。固定IP使得這些連接更加可靠。
  • 防火牆規則: 配置防火牆(如UFW)規則時,您可能需要允許或拒絕特定IP地址的流量。固定IP使得這些規則的管理更加直接和有效。
  • 監控和日誌: 監測網路流量或分析日誌時,統一的IP地址有助於更好地追蹤和識別特定設備或服務的活動。

在開始配置ubuntu固定ip前,您需要收集哪些信息?

在修改網路配置之前,請務必收集以下關鍵網路信息。這些信息通常由您的路由器或網路管理員提供。

  1. IP地址 (IP Address): 您希望分配給Ubuntu系統的固定IP地址。請確保這個IP地址在您的區域網內是唯一的,並且不在DHCP伺服器的分配範圍內,以避免IP衝突。
    示例:192.168.1.100
  2. 子網掩碼 (Subnet Mask): 用於定義網路範圍。通常為255.255.255.0,對應CIDR表示法中的/24
    示例:255.255.255.0/24
  3. 網關地址 (Gateway Address): 您的路由器在區域網中的IP地址。所有出站流量都將通過此網關。
    示例:192.168.1.1
  4. DNS伺服器地址 (DNS Servers): 用於將域名解析為IP地址的伺服器。您可以選擇使用路由器的IP地址作為DNS,也可以使用公共DNS服務(如Google DNS:8.8.8.8, 8.8.4.4;或Cloudflare DNS:1.1.1.1, 1.0.0.1)。
    示例:8.8.8.8, 1.1.1.1

如何查找當前網路信息:

在Ubuntu終端中,您可以使用以下命令來查看當前的網路配置:

  • 查找網卡介面名稱和IP地址:
    ip addr show
    您會看到類似 enp0s3eth0 的介面名稱。
  • 查找網關地址:
    ip route show | grep default
  • 查找DNS伺服器:
    cat /etc/resolv.conf

方法一:使用Netplan配置ubuntu固定ip(推薦用於現代Ubuntu伺服器及桌面版)

自Ubuntu 18.04 LTS開始,Netplan成為Ubuntu默認的網路配置工具,它使用YAML文件來定義網路介面配置,並支持NetworkManagersystemd-networkd作為後端渲染器。對於大多數現代Ubuntu系統,尤其是伺服器,推薦使用Netplan來設置固定IP地址

1. 識別網路介面名稱

在終端中輸入以下命令以確定您的網路介面名稱(例如 enp0s3, ens33, eth0 等)。

ip aip addr show

在輸出中找到您正在使用的網卡介面,通常會有一個IP地址被分配。例如,您可能會看到類似 enp0s3 的名稱。

2. 備份Netplan配置文件

Netplan的配置文件通常位於 /etc/netplan/ 目錄下,文件通常以 .yaml 結尾,例如 01-netcfg.yaml50-cloud-init.yaml。在進行任何修改之前,強烈建議備份原始文件。

sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

請將 01-netcfg.yaml 替換為您實際的配置文件名。

3. 編輯Netplan配置文件

使用您喜歡的文本編輯器(如Nano或Vim)打開Netplan配置文件。

sudo nano /etc/netplan/01-netcfg.yaml

根據您的網路介面名稱和收集到的網路信息,修改或創建以下內容。請注意YAML文件的縮進非常重要,請使用空格而不是Tab鍵進行縮進。

示例配置(有線連接):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:                     # 替換為您的實際網卡介面名稱
      dhcp4: no                 # 禁用IPv4 DHCP
      addresses: [192.168.1.100/24]  # 您的固定IP地址和子網掩碼(CIDR格式)
      gateway4: 192.168.1.1     # 您的網關地址
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]  # 您的DNS伺服器地址
      # 或者如果您有IPv6地址
      # dhcp6: no
      # addresses: [2001:db8::100/64]
      # gateway6: 2001:db8::1

詳細解釋:

  • network::Netplan配置的根。
  • version: 2:指定Netplan配置版本。
  • renderer: networkd:指定後端網路渲染器。對於大多數伺服器,使用networkd。桌面版用戶也可以使用NetworkManager
  • ethernets::定義乙太網介面的配置。
  • enp0s3::您的網路介面名稱。
  • dhcp4: no:禁用IPv4的DHCP自動獲取IP。
  • addresses: [192.168.1.100/24]:設置您期望的固定IP地址和子網掩碼。/24 等同於 255.255.255.0。如果您需要多個IP地址,可以添加多個。
  • gateway4: 192.168.1.1:設置您的默認網關。
  • nameservers::DNS伺服器配置。
  • addresses: [8.8.8.8, 1.1.1.1]:列出DNS伺服器的IP地址。

小貼士: 如果您的Ubuntu是桌面版,並且希望由NetworkManager管理靜態IP,可以將 renderer: networkd 改為 renderer: NetworkManager,然後繼續在Netplan文件中配置靜態IP,或者直接通過圖形界面配置(見方法二)。對於伺服器,堅持使用 networkd

4. 應用Netplan配置

保存並關閉文件后,使用以下命令應用更改:

sudo netplan apply

如果配置有語法錯誤,Netplan會報錯並拒絕應用更改。您可以先嘗試使用 sudo netplan try 命令,它會應用配置並在60秒后回滾,除非您確認更改。這是一個更安全的測試方法。

5. 驗證固定IP配置

應用配置后,請驗證您的IP地址是否已更新為靜態IP,並且網路連接正常。

  • 檢查IP地址:
    ip a
    確認您的網卡介面顯示了新的固定IP地址。
  • 測試網路連接:
    ping google.com
    確認可以訪問外部網路。
  • 測試網關:
    ping 192.168.1.1 (替換為您的網關地址)
    確認可以ping通網關。

方法二:使用NetworkManager配置ubuntu固定ip(推薦用於Ubuntu桌面版)

對於帶有圖形界面的Ubuntu桌面版用戶,通過NetworkManager的圖形用戶界面(GUI)設置固定IP地址是最直觀和簡便的方法。

1. 打開網路設置

點擊屏幕右上角的網路圖標(通常是Wi-Fi或有線連接圖標),然後選擇 「有線連接設置」「Wi-Fi 設置」(取決於您的連接類型)。

或者,您可以通過 「設置」 -> 「網路」 路徑找到它。

2. 選擇您的網路介面

在網路設置窗口中,找到您的有線或無線連接。點擊您當前連接旁邊的齒輪圖標(⚙️)以進入詳細設置。

3. 配置IPv4設置

  1. 在彈出的連接配置窗口中,切換到 「IPv4」 選項卡。
  2. 「IPv4 方法」「自動 (DHCP)」 更改為 「手動」
  3. 「地址」 部分,點擊 「添加」 按鈕。
  4. 輸入您收集到的網路信息:

    • 地址: 您的固定IP地址(例如 192.168.1.100
    • 網路掩碼: 子網掩碼(例如 255.255.255.0
    • 網關: 您的路由器IP地址(例如 192.168.1.1
  5. 「DNS」 欄位中,輸入您的首選DNS伺服器地址(例如 8.8.8.8, 1.1.1.1)。如果有多個,用逗號分隔。

  6. 確保 「搜索域」 欄位留空(除非您有特定的需求)。

4. 應用並保存設置

點擊右上角的 「應用」 按鈕,然後關閉設置窗口。

您的網路連接可能會短暫中斷並重新連接,以應用新的固定IP地址設置。

5. 驗證固定IP配置

打開終端,使用 ip a 命令確認IP地址已更改。

然後嘗試 ping google.com 驗證網路連接和DNS解析是否正常工作。

常見問題(FAQ)

1. 如何判斷我的Ubuntu系統是使用Netplan還是NetworkManager進行網路配置?

答: 您可以通過檢查配置文件來判斷。如果 /etc/netplan/ 目錄下存在 .yaml 文件,則系統很可能使用Netplan。在這些YAML文件中,通常會指定 renderer: networkdrenderer: NetworkManager。對於桌面版Ubuntu,NetworkManager通常是默認的。對於無GUI的伺服器版,Netplan+networkd是標準配置。

2. 為何我設置了固定IP后無法上網?

答: 這通常是以下原因之一:

  1. IP地址衝突: 您分配的IP地址已經被網路中其他設備佔用。請確保IP地址唯一。
  2. 網關或子網掩碼錯誤: 檢查您填寫的網關地址和子網掩碼是否與您的區域網配置匹配。
  3. DNS伺服器配置錯誤: 如果DNS伺服器地址不正確或無法訪問,您將無法解析域名,導致無法訪問互聯網(但可能可以ping通IP地址)。
  4. Netplan配置語法錯誤: YAML文件對縮進和語法非常敏感。任何小的錯誤都可能導致配置失敗。使用 sudo netplan try 進行測試,並檢查 sudo netplan --debug apply 的輸出以獲取詳細錯誤信息。

3. 如何在配置固定IP后切換回DHCP?

答:

  • 對於Netplan: 編輯 /etc/netplan/ 下的YAML文件,將 dhcp4: no 改為 dhcp4: yes,並刪除 addresses, gateway4, nameservers 等靜態配置行。然後運行 sudo netplan apply
  • 對於NetworkManager(GUI): 打開網路設置,進入連接的IPv4選項卡,將 「IPv4 方法」 改回 「自動 (DHCP)」,然後點擊 「應用」

4. 配置固定IP后,我的SSH連接斷開了,怎麼辦?

答: 如果您是通過SSH連接到Ubuntu進行配置的,並且在應用靜態IP后連接斷開,這通常是因為新的IP地址與您當前SSH會話使用的IP地址不同。

  1. 如果您在物理機旁,可以直接在物理機上登錄並檢查新的IP地址。
  2. 如果您的路由器支持,可以在路由器管理界面查看分配給Ubuntu的新IP地址。
  3. 您可以等待幾分鐘,然後嘗試用您新設置的固定IP地址重新SSH連接。
  4. 如果以上方法都無效,且您無法物理訪問設備,可能需要重啟設備,希望系統能回滾到舊的網路配置(如果使用了 netplan try 但沒有確認)。或者,通過雲服務商的控制台進行遠程調試。

5. 我在Netplan配置文件中應該使用「networkd」還是「NetworkManager」作為渲染器(renderer)?

答: 這取決於您的使用場景:

  • renderer: networkd 推薦用於Ubuntu伺服器或任何不需要圖形界面的系統。它更輕量、高效,並且是伺服器默認配置。
  • renderer: NetworkManager 推薦用於Ubuntu桌面版,特別是當您希望通過圖形界面(如任務欄的網路圖標)來管理網路連接時。如果Netplan配置中指定了NetworkManager為渲染器,但您又在NetworkManager的GUI中進行了配置,NetworkManager的GUI設置可能會覆蓋或與Netplan的設置衝突。通常,桌面版用戶可以直接使用NetworkManager的GUI進行靜態IP設置(方法二)。
一般情況下,伺服器堅持用networkd,桌面版則看具體需求選擇。

總結

為Ubuntu設置固定IP地址是網路管理中的一項基本而重要的任務。無論是通過基於命令行的Netplan(適用於現代伺服器環境,如Ubuntu 18.04 LTS及更高版本),還是通過圖形界面的NetworkManager(適用於桌面版用戶),掌握這些方法都能讓您的Ubuntu系統在網路中擁有更強的可控性和穩定性。

在進行任何網路配置更改時,請務必仔細檢查所輸入的信息,並牢記備份原始配置文件,以防止意外情況發生。在完成配置后,務必通過ping命令等方式進行驗證,確保您的ubuntu固定ip設置生效且網路連接正常。祝您配置順利!