從卡住的那個連接埠開始查。每一頁都會寫清楚上面跑的是什麼服務、該不該讓外網連得到,以及 macOS、Linux、Windows 各自要下哪一行指令,才能問出是誰占著它。
| 連接埠 | 服務 | 傳輸協定 | 上面跑什麼 |
|---|---|---|---|
| 21 | FTP | TCP | FTP 的控制連線——指令和三位數的回應碼走的是這個連接埠,檔案本身則走另一條連線,而那條用的連接埠沒有人告訴過你的防火牆。 |
| 22 | SSH | TCP | sshd 監聽的連接埠。後面掛著 `scp`、`rsync`、走 SSH 的 `git`、各種通道,還有 SFTP——所以這裡被拒絕一次,會同時弄壞五件不同的事。 |
| 23 | Telnet | TCP | 明文的遠端終端機連接埠。交換器、IP 攝影機和開發板到現在還是把它當出廠管理介面——也是不小心開出去、幾分鐘內就被掃描器找上的那一個。 |
| 25 | SMTP | TCP | 伺服器對伺服器的郵件轉送連接埠——你的應用程式幾乎永遠不該撥它,而它在雲端 VM 上逾時,是供應商擋掉了,不是郵件伺服器掛了。 |
| 53 | DNS | TCP/UDP | 名稱解析的連接埠,UDP 和 TCP 都用——而在多數現代 Linux 桌面上它早就被 systemd-resolved 占走了,這就是你的 dnsmasq 或 Pi-hole 起不來的原因。 |
| 80 | HTTP | TCP | 純文字 HTTP 的連接埠。現在它多半只負責轉去 443——但把它關掉,憑證就續不了約;而以一般使用者身分綁它,伺服器根本啟動不了。 |
| 443 | HTTPS | TCP/UDP | HTTPS 的連接埠——而且自從 HTTP/3 之後它也是一個 UDP 連接埠,所以只查 TCP 會讓你以為沒人在聽,實際上一半的流量正被好好服務著。 |
| 3306 | MySQL | TCP | MySQL、MariaDB、Percona 用來聽傳統用戶端協定的連接埠,也是驅動程式回報「連不上」時指的那一個。 |
| 3389 | RDP | TCP/UDP | Windows 上的遠端桌面監聽者——服務起不來時它已經被占走,而用戶端只是一直轉圈時,封包正被安靜地丟掉。 |
| 5432 | PostgreSQL | TCP | PostgreSQL 叢集監聽的地方——而當 psql 說連不上,原因不是它只綁回送位址、就是第二個叢集占著,再不然就是被 pg_hba.conf 擋下來。 |
| 5900 | VNC | TCP | VNC 講的 RFB 協定的基準連接埠——也是為什麼檢視器死都連不上,而伺服器好端端地坐在 5901。 |
| 6379 | Redis | TCP | Redis 伺服器聽 RESP 的連接埠——你的用戶端說連不到的那一個,也是暴露在外的快取幾個小時內就會被找到的那一個。 |
| 8080 | HTTP alternate | TCP | 80 被占走時,開發伺服器、Tomcat 或代理伺服器會改抓的那個連接埠;也是你需要它的時候,早就有人占著的那一個。 |
| 8443 | HTTPS alternate非 IANA 指派 | TCP | 443 的非特權雙胞胎:一般使用者也綁得起來的 TLS 連接埠,也是 Tomcat 和多數設備管理主控台會伸手去拿的那個號碼。 |
| 27017 | MongoDB | TCP | mongod 和 mongos 預設監聽的地方——也是驅動程式會安靜地花上三十秒選不到伺服器的那個連接埠。 |