在 Ubuntu 網路環境中,設定靜態路由(Static Route)是管理封包流向、分隔子網、或建立多閘道路由的重要技巧。在 Ubuntu Desktop 最常見的兩種設定方式分別是使用 ip route 與 nmcli 指令。前者直接操作 Linux 核心路由表,立即生效但不具持久性;後者透過 NetworkManager 管理設定(為了支援圖形化網路切換),重開機後仍能自動套用。需要注意的是,並非所有 Ubuntu 系統都使用 NetworkManager——伺服器版通常採用 Netplan 或 systemd-networkd 管理介面,因此在使用 nmcli 前,建議先以 nmcli device status 或 networkctl list 確認該網卡是否受 NetworkManager 控制,確保設定能正確套用。

若你的需求是臨時測試或快速導流,ip route 是最直接的選擇。它能即時修改核心路由表,無需重啟任何服務,結果可立即以 ip route show 驗證。例如要讓 192.168.2.0/24 網段的流量經由 192.168.3.1 閘道並指定網卡 eth0,可以這樣輸入:
sudo ip route add 192.168.2.0/24 via 192.168.3.1 dev eth0 metric 50
這條指令會立刻生效,立刻能看到路由被加入,但只在當前執行階段存在。一旦重開機、重新啟用介面或重啟 NetworkManager,該路由就會被清除。此法適合測試與臨時修改,但不適合用於生產環境或長期設定。
若希望路由在系統重開後仍保留,則建議使用 NetworkManager 所提供的 nmcli 指令。它能將靜態路由寫入指定連線的設定檔中,例如:
sudo nmcli connection modify "netplan-eth0" \
+ipv4.routes "192.168.2.0/24 192.168.3.1 50"
sudo nmcli connection down "netplan-eth0"
sudo nmcli connection up "netplan-eth0"
執行後,路由會被記錄於 /etc/NetworkManager/system-connections/netplan-eth0.nmconnection 檔案內。需要注意的是,修改後必須重新啟動該連線(以 down/up 或 reapply 的方式)才能使設定套用至核心路由表。這樣配置的優點是具備持久性與一致性,無論系統重啟或網卡重新連線,路由都會自動載入。
| 項目 | ip route |
nmcli connection modify |
|---|---|---|
| 操作層級 | 直接修改核心路由表 | 修改 NetworkManager 連線設定 |
| 生效時間 | 立即生效 | 需重啟連線後生效 |
| 持久性 | 非永久,重開後失效 | 永久保存,重開仍存在 |
| 適用情境 | 臨時測試、快速修正 | 正式部署、長期維護 |
綜合來看,ip route 與 nmcli 並非互斥,而是互補。實務上常見流程是先用 ip route 進行即時測試,確認網路通暢與閘道正確後,再透過 nmcli 將結果永久寫入設定檔。這樣既能確保調整過程靈活,也能避免設定在重啟後遺失。掌握這兩種方式的運作邏輯與差異,能讓你在 Ubuntu 網路環境中有效管理靜態路由,實現更穩定且可控的網路架構。
《上一篇》Gboard:將消失的語言切換鍵(地球儀圖示)找回來!
《下一篇》Nano Banana:熱門 AI 應用,雪景三格免費生成完整教學!(二次元、真人風格皆適用) 









留言區 / Comments
萌芽論壇