Ubuntu:使用 ip route 與 nmcli 設定靜態路由的完整教學與差異分析

2025/11/05 50 2 作業系統 , 伺服器 , Linux , Ubuntu

在 Ubuntu 網路環境中,設定靜態路由(Static Route)是管理封包流向、分隔子網、或建立多閘道路由的重要技巧。在 Ubuntu Desktop 最常見的兩種設定方式分別是使用 ip routenmcli 指令。前者直接操作 Linux 核心路由表,立即生效但不具持久性;後者透過 NetworkManager 管理設定(為了支援圖形化網路切換),重開機後仍能自動套用。需要注意的是,並非所有 Ubuntu 系統都使用 NetworkManager——伺服器版通常採用 Netplan 或 systemd-networkd 管理介面,因此在使用 nmcli 前,建議先以 nmcli device statusnetworkctl 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 routenmcli 並非互斥,而是互補。實務上常見流程是先用 ip route 進行即時測試,確認網路通暢與閘道正確後,再透過 nmcli 將結果永久寫入設定檔。這樣既能確保調整過程靈活,也能避免設定在重啟後遺失。掌握這兩種方式的運作邏輯與差異,能讓你在 Ubuntu 網路環境中有效管理靜態路由,實現更穩定且可控的網路架構。

贊助廣告 ‧ Sponsor advertisements

留言區 / Comments

萌芽論壇