在企業級應用、家庭服務器搭建或任何需要穩定網絡連接的場景中,為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前,您需要收集哪些信息?
在修改網絡配置之前,請務必收集以下關鍵網絡信息。這些信息通常由您的路由器或網絡管理員提供。
- IP地址 (IP Address): 您希望分配給Ubuntu系統的固定IP地址。請確保這個IP地址在您的局域網內是唯一的,並且不在DHCP服務器的分配範圍內,以避免IP衝突。
示例:192.168.1.100
- 子網掩碼 (Subnet Mask): 用於定義網絡範圍。通常為255.255.255.0,對應CIDR表示法中的/24。
示例:255.255.255.0 或 /24
- 網關地址 (Gateway Address): 您的路由器在局域網中的IP地址。所有出站流量都將通過此網關。
示例:192.168.1.1
- 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
您會看到類似 enp0s3 或 eth0 的接口名稱。 - 查找網關地址:
ip route show | grep default - 查找DNS服務器:
cat /etc/resolv.conf
方法一:使用Netplan配置ubuntu固定ip(推薦用於現代Ubuntu服務器及桌面版)
自Ubuntu 18.04 LTS開始,Netplan成為Ubuntu默認的網絡配置工具,它使用YAML文件來定義網絡接口配置,並支持NetworkManager和systemd-networkd作為後端渲染器。對於大多數現代Ubuntu系統,尤其是服務器,推薦使用Netplan來設置固定IP地址。
1. 識別網絡接口名稱
在終端中輸入以下命令以確定您的網絡接口名稱(例如 enp0s3, ens33, eth0 等)。
ip a或ip addr show
在輸出中找到您正在使用的網卡接口,通常會有一個IP地址被分配。例如,您可能會看到類似 enp0s3 的名稱。
2. 備份Netplan配置文件
Netplan的配置文件通常位於 /etc/netplan/ 目錄下,文件通常以 .yaml 結尾,例如 01-netcfg.yaml 或 50-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設置
- 在彈出的連接配置窗口中,切換到 「IPv4」 選項卡。
- 將 「IPv4 方法」 從 「自動 (DHCP)」 更改為 「手動」。
- 在 「地址」 部分,點擊 「添加」 按鈕。
輸入您收集到的網絡信息:
- 地址: 您的固定IP地址(例如 192.168.1.100)
- 網絡掩碼: 子網掩碼(例如 255.255.255.0)
- 網關: 您的路由器IP地址(例如 192.168.1.1)
在 「DNS」 字段中,輸入您的首選DNS服務器地址(例如 8.8.8.8, 1.1.1.1)。如果有多個,用逗號分隔。
確保 「搜索域」 字段留空(除非您有特定的需求)。
4. 應用並保存設置
點擊右上角的 「應用」 按鈕,然後關閉設置窗口。
您的網絡連接可能會短暫中斷並重新連接,以應用新的固定IP地址設置。
5. 驗證固定IP配置
打開終端,使用 ip a 命令確認IP地址已更改。
然後嘗試 ping google.com 驗證網絡連接和DNS解析是否正常工作。
常見問題(FAQ)
1. 如何判斷我的Ubuntu系統是使用Netplan還是NetworkManager進行網絡配置?
答: 您可以通過檢查配置文件來判斷。如果 /etc/netplan/ 目錄下存在 .yaml 文件,則系統很可能使用Netplan。在這些YAML文件中,通常會指定 renderer: networkd 或 renderer: NetworkManager。對於桌面版Ubuntu,NetworkManager通常是默認的。對於無GUI的服務器版,Netplan+networkd是標準配置。
2. 為何我設置了固定IP后無法上網?
答: 這通常是以下原因之一:
- IP地址衝突: 您分配的IP地址已經被網絡中其他設備佔用。請確保IP地址唯一。
- 網關或子網掩碼錯誤: 檢查您填寫的網關地址和子網掩碼是否與您的局域網配置匹配。
- DNS服務器配置錯誤: 如果DNS服務器地址不正確或無法訪問,您將無法解析域名,導致無法訪問互聯網(但可能可以ping通IP地址)。
- 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地址不同。
- 如果您在物理機旁,可以直接在物理機上登錄並檢查新的IP地址。
- 如果您的路由器支持,可以在路由器管理界面查看分配給Ubuntu的新IP地址。
- 您可以等待幾分鐘,然後嘗試用您新設置的固定IP地址重新SSH連接。
- 如果以上方法都無效,且您無法物理訪問設備,可能需要重啟設備,希望系統能回滾到舊的網絡配置(如果使用了
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設置生效且網絡連接正常。祝您配置順利!

