−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

被 ufw 擋在自己的 VPS 外面?無需重灌就能重新進入

2026年8月22日 · 1 分鐘閱讀 · EQVPS Team

第一次自己管伺服器的人都有個成人禮:您決定配個防火牆,敲幾條 ufw 指令,按下啟用——然後終端沒聲了。SSH 沒了。您沒搞崩什麼,也沒被黑。您只是把門鎖上了,自己卻在外面。

這事老手也會碰上。上週我們一位客戶就中招了,所以我把它寫下來。好訊息:一分鐘內就能完全恢復,而且不用重灌、不會丟一個檔案。方法如下。

一台被防火牆牆壁封住的伺服器,一個發光的控制台視窗是回到裡面的入口

到底出了什麼問題

ufw(Uncomplicated Firewall)預設拒絕所有對內。您一執行 ufw enable,凡是沒被顯式放行的都會被丟棄——包括您正坐在裡面的那條 SSH 工作階段。忘了先 ufw allow 自己的 SSH 埠,規則一生效,您就把自己的連線切斷了。

這是最經典的版本。還有兩種也常坑人:

  • 放行了錯誤的埠。打錯字,或者放行了服務埠(比如 8080)卻忘了 22。
  • 放行了 22,但在列表上方又設了一條 deny 把它蓋住了。ufw 對順序敏感。

無論哪種,伺服器本身都好好的——在執行、磁碟完整、您的應用還在牆後嗡嗡跑。這純粹是網路存取的問題。正因如此,修起來很輕鬆。

錯誤做法:重灌

第一反應常常是「乾脆重設伺服器從頭來」。別——這種情況別這麼幹。重灌為了拿回能用的 SSH 而把一切抹掉,而擋住 SSH 的不過是一條十秒就能撤銷的防火牆指令。這就像因為把前門反鎖了就把房子燒掉。

當您想要一張白紙時,重灌才合適。對 ufw 鎖門來說,它是殺雞用牛刀。

正確做法:Web 控制台

任何像樣的 VPS 都會給您一個帶外控制台——一條不走 SSH、甚至不經過網路棧就能進機器的通道。在 EQVPS 上,它就是伺服器頁面上的 主控台按鈕。這是序列埠控制台:純文字,像顯示器加鍵盤一樣直連 VM。防火牆規則對它無能為力,因為它不是網路流量。

EQVPS 伺服器管理頁上的主控台按鈕

點它,用 root 憑據登入(沒有密碼就在面板裡揭示一下),您就進了機器——有沒有防火牆都行。

現在撤銷後果。最快的路徑:

sudo ufw disable

這會關掉防火牆並保留您的規則,方便您改正錯誤後再啟用。SSH 立刻回來。

如果您不想把防火牆整個關掉,就放行您漏掉的那個埠:

sudo ufw allow 22
sudo ufw status numbered

status numbered 值得一看:它顯示規則順序——「我放行了 22 卻還是被擋」的情況就藏在這裡。如果有條 deny 排在您的 allow 上面,刪掉它:sudo ufw delete <編號>。

多數教學漏掉的 NAT 陷阱

如果您用的是 NAT 方案,這裡有個坑。您透過一個高位連接埠(比如 20266)連 SSH,於是自然想寫 ufw allow 20266。這沒有任何作用。

在 NAT 下,那個外部埠被轉發到 VM 內部的 22 埠。ufw 跑在 VM 內部,永遠只看得到 22。所以您真正需要的是:

sudo ufw allow 22

放行 20266,您會盯著依舊連不上的連線納悶為什麼。放行 22,您就進去了。任何服務同理:放行程式在機器內部監聽的埠,而不是您從外面連的那個轉發埠。

怎樣再也不重蹈覆轍

修起來只要一分鐘,但不需要修更好。兩個習慣:

**啟用前先放行您的 SSH 埠。**永遠這個順序:

sudo ufw allow 22
sudo ufw enable

反過來做,您就又得進控制台了。

**改防火牆規則時保持第二個 SSH 工作階段開著。**登入兩次。在一個窗口裡改;如果 SSH 斷了,另一個視窗還活著,能救場。老把戲,每次都管用。

如果您在配一台新機器——我們的新 VPS 安全清單會按正確順序講 ufw,連同 SSH 金鑰,以及頭十分鐘裡真正要緊的另外幾件事。

小結

ufw 鎖門看著嚇人,其實幾乎什麼都不是。伺服器從沒離開;您只需要一扇防火牆關不上的門——Web 控制台——和一條指令。把 ufw disable 和控制台揣在兜裡,下次啟用前先放行埠,您就再也不用為這事冒汗了。

常見問題

我啟用了 ufw,現在 SSH 連不上。伺服器是不是廢了?

沒廢。伺服器好好執行著——您只是從裡面把門鎖上了,資料毫髮無損。打開面板裡的 Web 控制台(它不走 SSH 也能登入),執行 `sudo ufw disable`,您就回來了。不需要重灌。

為什麼啟用 ufw 會把 SSH 弄斷?

ufw 預設拒絕所有對內流量。如果您沒先放行自己的 SSH 埠就啟用,您目前的工作階段會被切斷。這是最常見的自我鎖門方式。永遠先 `ufw allow <ssh 埠>`,再 `ufw enable`。

如果根本連不上 SSH,怎麼修 ufw?

用面板裡的帶外 Web 控制台(serial console)——它不走 SSH,甚至不經過網路棧,所以防火牆規則擋不住它。登進去後 `sudo ufw disable`(最快),或者 `sudo ufw allow <埠>` 修正具體規則。

在 NAT VPS 上,ufw 該放行哪個埠?

放行 22,而不是外部埠。NAT 方案裡您連的是像 20266 這樣的高位連接埠,但它被轉發到 VM 內部的 22 埠。ufw 跑在 VM 內部,只看得到 22。放行 20266 沒用——放行 22。

`ufw reset` 比 `ufw disable` 更安全嗎?

`disable` 只是關掉防火牆並保留規則——回來最快。`reset` 會把所有規則清成預設。恢復用 `disable`,之後再小心地重加規則。只有當規則集亂成一團、您想徹底清掉時才用 `reset`。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。