"Connection closed by remote host" 是什麼意思
伺服器接受了你的連線,然後主動把它斷開。這正是和 refused(沒人在聽)、timed out(完全沒回應)的關鍵區別:這裡有東西應答了,然後掛斷。各種變體——Connection closed by remote host、Connection reset by peer、kex_exchange_identification: Connection closed by remote host——幾乎總是其中之一:你被 fail2ban 封了、伺服器 sshd 在重啟/過載、或撞上了連線數上限。
原因,按可能性排序
| # | 原因 | 蛛絲馬跡 |
|---|---|---|
| 1 | 失敗登入後被 fail2ban / 封 IP | 昨天還好,今天幾次失敗嘗試後就死了 |
| 2 | sshd 在重啟或剛重啟 | 伺服器在重啟;過一會兒就好 |
| 3 | 連線太多(MaxStartups) | 繁忙伺服器,負載下間歇性 |
| 4 | hosts.deny / TCP wrappers / 防火牆重置 | 特定 IP 被伺服器攔 |
| 5 | 那個連接埠上是非 SSH 服務 | 連接埠錯了——別的東西應答後斷開 |
1——頭號原因:你被 fail2ban 封了
如果這之前有幾次失敗的金鑰/密碼嘗試,fail2ban(或雲服務商的等價物)很可能封了你的 IP——你一連它就丟包,表現就是"closed by remote host"。從另一臺還能連的機器確認並解封:
sudo fail2ban-client status sshd # 你的 IP 在列表裡嗎?
sudo fail2ban-client set sshd unbanip 1.2.3.4 在手機上這尤其常見:變動的 IP(Wi-Fi 切蜂窩)加上一兩次錯誤金鑰嘗試,就足以觸發封禁。修好底層的認證問題(見 Permission denied)能止住反覆發生。
2——sshd 重啟、重啟中或過載
如果機器在重啟、或 sshd 在重載設定,那個視窗裡的連線會被斷開;過一分鐘再試。在長期繁忙的伺服器上,sshd 的 MaxStartups 限流(預設 10:30:100)在太多未認證連線在途時開始丟棄——負載下你會看到間歇性斷開。在伺服器上調高它有幫助:
# /etc/ssh/sshd_config
MaxStartups 30:50:100
# 然後:sudo systemctl reload ssh 3——看伺服器自己的日誌
權威答案在伺服器上。從任何能進去的方式(主控臺、另一個工作階段):
sudo journalctl -u ssh -n 50 # 或:tail -n 50 /var/log/auth.log 它會明白寫出是封禁、拒絕某使用者、hosts.deny、還是設定錯誤——把猜測變成一行診斷。
在手機上恢復
行動端的惱人之處是:你往往沒法 SSH 進那臺剛把你斷開的機器去查。如果同網路還有另一臺可達,就借道進去跑 fail2ban-client / journalctl 檢查。如果你盯著原始報錯、不確定是五個原因裡的哪個,選中它問助手——TermAI 的 AI 讀真實報錯和你的脈絡,告訴你它更像封禁、限流還是重啟,並給出確認用的命令。
常見問題
"Connection closed by remote host" 是什麼導致的?
伺服器接受後又斷開——最常見是 fail2ban 封 IP、sshd 重啟/過載、連線數上限(MaxStartups)、或基於主機的攔截。查伺服器認證日誌。
它和 connection refused 有什麼區別?
Refused = 沒人在聽。Closed by remote host = 有東西應答了,然後主動掛斷。
我老是被封,為什麼?
反覆的失敗認證(常是錯的或沒遞的金鑰)觸發 fail2ban。修認證問題本身,有穩定地址的話把它加白名單。
kex_exchange_identification: Connection closed 是什麼?
同一族——伺服器在初始握手期間斷開,通常是封禁、限流、或那個連接埠上是非 SSH 服務。
快速事實
- 含義:伺服器接受後主動斷開(不是 refused、不是 timed out)
- 頭號原因:失敗登入後被 fail2ban / 封 IP——
fail2ban-client status sshd - 其它:sshd 重啟、負載下
MaxStartups限流、hosts.deny、連接埠錯 - 診斷:伺服器上
journalctl -u ssh//var/log/auth.log寫明原因 - 行動端提示:變動 IP + 一兩次錯誤金鑰很容易觸發封禁——修認證根因
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.