Ubuntu 18.04 (還是更早?) 棄 /etc/network/interfaces 改用 netplan 以來, 我一直不敢面對, 一直還是堅持用 懷舊網路設定。 最近 移民 mint 20 ulyana, 總算搞懂 netplan: 它只是一個最高階層、 負責出一張嘴的空殼, 在它的設定檔 /etc/netplan/*.yaml 裡面有一句最重要的 renderer, 由這句話指定到底要用 NetworkManager 還是要用 networkd 來實作網路連線 -- 它們才是真正做苦工的程式。 有點像是董事長 (呃,我剛剛說了什麼~) 決定要請哪一位來當總經理/執行長: 沒有太多選擇, 大概就只有這兩位, 而且最好不要請兩位同時上任。 爬文時, 有人也人把這兩個選擇稱為不同的 backends。 很棒的 stackexchange 問答。
[總經理 A] 一般預設採用 NetworkManager
當作 renderer/backend -- 尤其推薦給筆電用戶,
因為用它來管理來來去去的無線網路比較方便。 不論是哪一個桌面環境,
通常在視窗 (右下角?) 的狀態列當中都會有一個網路連線圖示,
點下去就可以叫出圖形介面、 操作後台 (開機時會自動啟動)
的 NetworkManager、 決定要連到哪一個無線 (或有線) 網路。
本著 不怕死 不怕網路斷線的精神,
請 ps ax | grep NetworkManager
,
找出它的 pid 並把它 kill 掉。 接下來再按狀態列的網路連線圖示,
就會看到 "NetworkManager is not running" 之類的圖示。
再用 sudo NetworkManager
重新啟動, 圖形介面又可以使用。
選用 NetworkManager 作為 renderer/backend 的意思基本就是:
「我只想操作圖形介面, 不想改設定檔」。
此時如果一定要改設定檔, 請參考
這篇。 萬一需要除錯, 根據
官網 Troubleshooting 文件, netplan 會依據 /etc/netplan/*.yaml
幫 NetworkManager 在 /run/NetworkManager/ 底下產生一堆設定檔,
可以從這裡著手。
[總經理 B] 如果需要較多奇怪的手動設定, 例如在多張對外網卡的伺服器上, 或是想要在桌機上跑 kvm 並且把虛擬機拉出來跟 host 放在同一個區網 (所以需要建立 bridge) ... 而且如果你比較習慣修改文字設定檔, 那麼爬到的文章多半會建議選用 networkd 當作 renderer/backend。 事實上可能也不太需要爬文。 官網的範例集錦頁面 提供很多常見狀況的範例設定檔。 例如我想把虛擬機拉出來跟 host 放在同一個區網, 就在該頁找到 bridge 範例, 小改一下就成功了。 如果需要除錯, 一樣讀官網 Troubleshooting 文件, 並檢查那些從 /etc/netplan/*.yaml 所產生出來的 /run/systemd/network/× 設定檔是否正確。
到這裡就很容易理解: 我的 ulyana live CD 採用 networkd,
所以狀態列的網路連線圖示顯示沒有網路連線, 但其實網路還是通的。
就算把 NetworkManager 那個 process 砍掉也沒差。
但如果拿我的 live CD 到筆電上使用而且想要用 wifi 連線,
那麼最簡單的連線上網方式是: 到 /etc/netplan 底下,
把原本的 *.yaml 改名為 *.txt 之類的 (總之副檔名不要是 .yaml 就對了) 讓它失效,
再用 grep NetworkManager *
找出
「採用 NetworkManager 作為 renderer」 的那一個範例設定檔
(當初我沒搞懂, 所以檔名取得怪怪的 orz)
並且把這個檔案改名為 *.yaml 讓它生效,
最後下 netplan apply
叫它重讀設定檔, 之後即可使用圖形介面連線。
寫到一半時才發現 官網首頁 的簡介根本就超級清楚, 比許多教學文更簡單明瞭, 趕快順便把他們的圖偷來用。
現在再去讀一般的下指令教學文, 是不是清楚多了呢? 中文:
1、
2、
3、
4、 ...
原來還有 netplan try
「不成功就限時還原」 這招,
對於修改遠端伺服器網路設定超好用!
沒有留言:
張貼留言
因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。