# 常見連接埠對照

> 被連接埠卡住的時候用的反查表：上面跑什麼、該不該對外開，以及一行就能問出是誰占著它的指令，三大系統都有。

- URL: https://bytescope.dev/zh-Hant/port/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/port.md) · [ja](https://bytescope.dev/ja/port.md)
- Runs: 全部在你的瀏覽器裡跑，什麼都不會上傳。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

### 為「連接埠就是問題本身」的那一刻而寫

幾乎沒有人是出於好奇去查一個連接埠號碼。會查，是因為服務起不來、程式連不上，或是掃描結果冒出一個沒人記得開過的東西在那邊聽。所以這裡每一頁都先給你能解開卡點的東西——macOS、Linux、Windows 上直接點名是哪個行程占著它的那行指令——之後才談那個服務本身是做什麼的。

### 三行指令，三個坑

「這個連接埠是誰的」在每個系統上的問法都不一樣，而且每一種都有坑。macOS 的 `lsof` 不加 `sudo` 只看得到你自己的行程，所以由 Docker 或系統帳號啟動的服務會像不存在一樣。Linux 的 `ss` 也是同樣道理，所有者那一欄會是空的。Windows 的 `netstat` 習慣接 `findstr`，而它比對的是子字串，所以查 `:3306` 連 `:33060` 也會一起命中。每一頁除了指令本身，也會寫清楚輸出要怎麼讀。

### 是指派，還是大家習慣這樣用

連接埠號碼的官方意義只有一個依據：IANA 的 Service Name and Transport Protocol Port Number Registry。很多天天在用的組合其實沒有登記，也有登記了但實務上沒人理的。所以每一頁都會分清楚是哪一種，不把兩者混為一談。範圍也是同一份登記表訂的：0-1023 是系統埠，在 Unix 系統上要有特權才綁得起來；1024-49151 是使用者埠；49152-65535 是動態埠，留給連線發起端臨時挑選。不過作業系統不一定照辦，Linux 預設的臨時埠範圍是 32768-60999。

## Limits

Does not scan ports on a host; it is a reference of well-known port numbers and the services behind them.

## FAQ

### 怎麼查出是什麼東西在用這個連接埠？

macOS 用 `sudo lsof -nP -iTCP:8080 -sTCP:LISTEN`，Linux 用 `sudo ss -tlnp 'sport = :8080'`，Windows 用 `netstat -ano | findstr :8080` 拿到 PID，再用 `tasklist /FI "PID eq <pid>"` 換成名字。三種都會一併印出它綁在哪個位址上，所以「別台機器連不連得到」這個下一個問題也順便回答了。

### 連接埠被占用了，怎麼放出來？

先用上面的指令看清楚持有者是誰，因為答案十之八九是「剛才那個服務還沒真的停掉」，好好停比直接砍安全。如果過一兩分鐘它自己就空出來，那其實根本沒人占著：連線還開著就被關掉的 socket 會停在 `TIME_WAIT`，沒設 `SO_REUSEADDR` 的程式就得等計時器跑完才綁得上。Windows 還有一種情況是明明沒人在聽卻還是綁不起來，那是 Hyper-V、WSL2 或 Docker 開機時預留了一段連接埠，用 `netsh interface ipv4 show excludedportrange protocol=tcp` 可以列出來。

### 連接埠號碼會決定講什麼協定嗎？

不會。連接埠號碼只是核心用來把封包送到某個 socket 的 16 位元標籤，沒有任何機制強迫上面要講什麼。443 上完全可以擺一個不講 TLS 的東西，而 8080 上的 Web 伺服器就是一台號碼比較特別的普通 HTTP 伺服器。慣例值得知道，是因為它告訴你那裡「大概」是什麼；要確認實際是什麼，`nmap -sV` 會去讀真正的回應，而不是相信號碼。

### 哪些連接埠可以放心對外開？

原則上是那些一開始就是為了面對惡意網路而設計的：443 的 HTTPS，以及關掉密碼登入的 22 SSH。真正出事的通常是資料庫：3306、5432、6379、27017 都有認證沒錯，但把它們對外開，等於把那道認證擺到整個網際網路面前，而新出現的服務幾個小時內就會被掃描器找到。這類服務走內網、VPN 或 SSH 通道進去才是正解；真的非得可路由不可，至少在防火牆上限制來源位址。

### well-known、已登記、動態連接埠差在哪？

這是 IANA 登記表訂的三個範圍。0-1023 的系統埠就是所謂的 well-known，在 Unix 系統上要 root 或明確授予的權限才綁得起來——這正是為什麼一大堆軟體預設用 8080 而不是 80。1024-49151 的使用者埠可以申請登記。49152-65535 的動態埠留給用戶端在對外連線時臨時挑的來源埠，本來就不打算登記給任何服務。
