改了網路設定就連不上:鋸斷自己坐著的樹枝
網路設定正是透過套用它時所使用的那條連線來套用的。一個小錯誤就會在套用的瞬間切斷連線,而如果沒有事先準備好退路,就需要實體存取。
AtlasPVE ·
本條目涵蓋以下問題
- proxmox 改網路設定後 無法連線
- proxmox 把自己鎖在外面
- proxmox interfaces 檔案 損壞
- proxmox ifreload 卡住
- proxmox 還原網路設定
修正了位址、套用之後,面板就沒有回應了。這是最常見的把自己鎖在伺服器外面的方式,原因很簡單:網路設定是透過正用來套用它的那條連線來套用的。這等於是在鋸斷自己坐著的那根樹枝。
變更任何設定前的三項準備
第一:一條不受這次變更影響的第二條進入途徑。實體主控台、伺服器本身的頻外管理卡,或是接在另一個橋接器上的第二張網路卡。如果這些都沒有,那麼即將進行的操作,不論叫什麼名字,都是一項無法回頭的操作。
第二:知道退回原狀是什麼樣子。保留一份目前設定的副本。光靠記憶,在驚慌的當下是靠不住的。
第三:一次只做一項變更。同時改兩件事,就無法判斷是哪一項切斷了連線;而在必須親自走過去才能操作的機器上,反覆試錯的代價很高。
常見的錯誤
在沒有實體連接埠的橋接器上要求取得位址。沒有實體連接埠的橋接器無法送出封包。要求它取得位址,套用步驟就不會完成,而是卡住。卡住的套用比失敗的套用更糟:系統既不在舊狀態,也不在新狀態。
連接埠名稱改變。硬體變更時或某些升級之後,實體網路卡的名稱可能會改變。如果設定中的名稱在機器上已經不存在,橋接器就會是空的。
改了位址卻忘了閘道。或者反過來。機器啟動後看得到自己的網路,卻出不去。
在管理介面上加了標籤。一個方向正常,另一個方向一片沉默。因為加標籤不會產生任何錯誤,這也是最晚被發現的一種。
如果已經被鎖在外面
誠實的答案是:需要實體存取,或是一條頻外的途徑。重新啟動也救不了,因為機器會以磁碟上的檔案啟動,而那個檔案仍然是壞的。只有在已經修正那個檔案的情況下,重新啟動才有幫助。
Atlas 的做法
Atlas 套用網路設定時,會啟動一個回復倒數計時:如果沒有在設定的時間內確認,舊的設定就會自動恢復。重點在於由誰掌握這個倒數計時。倒數計時設定在系統本身的計時器上,而不是在 Atlas 本身,因此即使 Atlas 服務在那一刻當掉,回復仍然會執行。一張必須仰賴執行變更的軟體存活才能運作的安全網,根本不是安全網。
其次,Atlas 會事先拒絕任何會讓回復變得不可能的設定。如果在沒有實體連接埠的橋接器上要求取得位址,操作會在套用之前就停止,因為這種組合會鎖死套用步驟,而被鎖死的步驟甚至無法寫入回復記錄。這項檢查位在伺服器端而不是介面中,因此手動送出的請求也會撞上同一道牆。
資料來源
Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。