排錯

SSH "Connection timed out":原因與修法

Timed out 意味著你的封包完全沒有得到回應——不同於 refused。五個原因:從外部連私有 IP(行動端頭號情況)、IP 錯/變了、主機關了、防火牆 DROP、網路封 22 連接埠——以及修法。

CC Chen Chen· 創始人·2026 年 6 月 24 日·閱讀 5 分鐘

"Connection timed out" 是什麼意思

逾時意味著你的封包完全沒有得到回應——它們在某處被丟棄,或被送往一個不存在任何東西的位址。這是和 Connection refused(一個主動的「這裡沒人在聽」回覆)的關鍵區別:refused 證明機器可達;timed out 證明什麼都不可達。原因全是「你的流量到不了那臺機器」的變體:IP 錯、主機關了、防火牆靜默丟棄、或者——行動端的頭號情況——從外部去連一個私有位址。

原因,按可能性排序

#原因典型場景
1從外部連私有 IP家裡 Wi-Fi 能連,行動數據逾時
2IP 錯了 / 變了DHCP 給機器換了位址
3主機關了 / 睡了筆電闔蓋、樹莓派斷電
4防火牆設為 DROP雲端安全群組沒有 SSH 規則
5所在網路封連接埠公司/飯店網路封出站 22

1——經典款:「在家能連,出門逾時」

192.168.x.x10.x.x.xraspberrypi.local 這類位址只存在於你家網路內部。從行動數據或任何別的網路,送往它們的封包無處可去——必然逾時。乾淨的解法不是連接埠轉發(把 SSH 暴露到公網),而是網格 VPN:把機器和手機都放進 Tailscale,從任何地方連它穩定的 100.x 私有位址。TermAI 內建 Tailscale,手機端不需要額外 App。

手機上一條走 Tailscale 的 SSH 連線成功認證
頭號逾時原因的解法:走 Tailscale,機器有一個在家庭 Wi-Fi、行動數據、任何地方都通用的穩定位址——無需連接埠轉發。

2——核實 IP 和主機在不在

同一網路下 ping 那個位址。沒有回應通常是 IP 錯/變了,或機器沒電——查路由器裝置清單,或在機器上跑 hostname -I。記住休眠策略:闔蓋且沒設「防止睡眠」的 Mac 不會應答;電源不穩的樹莓派可能悄悄掛了。

3——丟棄而非拒絕的防火牆

雲端服務商的安全群組對不允許的流量是丟棄,看起來就是逾時(不是拒絕)。VPS 在 22 連接埠逾時,先查服務商面板的防火牆規則。機器本身也一樣:sudo ufw status——DROP 策略沒放行 SSH 時表現相同。

4——你所在的網路封了它

一些公司、學校、飯店網路封出站 22 連接埠。切到行動數據測試:突然能連了,就是網路的問題。長期方案:在你控制的伺服器上把 SSH 跑在 443,或者——更乾淨——Tailscale,它無需開連接埠就能穿過這些網路。

60 秒診斷

ping HOST              # 有回應?主機存在且可達
nc -vz HOST 22         # 端口應答?("succeeded" / "refused" / 卡住 = 被丟棄)
# 每個端口都卡住 → 路由/防火牆;22 上 refused → 看 refused 那篇

在手機上,從那個網路裡任何你連上的機器跑這些——或問 TermAI 助手要確切的探測命令,在那臺機器上執行。

常見問題

為什麼 SSH 在家能用、行動數據下逾時?
你在連一個家庭網路之外不存在的私有區域網位址。用 Tailscale(TermAI 內建)給機器一個從任何地方可達的穩定位址。

timed out 和 refused 有什麼區別?
Timed out = 完全沒有回應(不可達、被丟棄、或位址錯)。Refused = 機器應答了但那個連接埠上沒人在聽。

為什麼我的 VPS 在 22 連接埠逾時?
多半是服務商的安全群組/雲端防火牆沒有 SSH 規則——流量在作業系統看到之前就被靜默丟棄了。

快速事實

  • 含義:封包沒有得到回應——主機不可達、流量被丟、或位址錯
  • 行動端頭號原因:從外部連私有區域網 IP → 用 Tailscale,別連接埠轉發
  • 雲端原因:安全群組 DROP(查服務商面板)
  • 診斷:ping + nc -vz host 22——卡住=被丟,refused=看 refused 篇
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog