端口是什么?常用端口汇总
如果说服务器 IP 是“大楼地址”,那么端口就是“房间号”。即使在同一台服务器中,也像网站用 443 号、Minecraft 用 25565 号这样,每个程序通过不同的端口接收连接。从外部无法连接时,大多是因为这个端口被阻止了,或程序没有在该端口上等待连接。
常用端口
| 端口 | 用途 | 是否对外开放 |
|---|---|---|
| 22 (TCP) | Linux 服务器 SSH 连接 | 开放(默认) |
| 3389 (TCP) | Windows 远程桌面 | 开放(默认) |
| 80 (TCP) | 网站(HTTP) | 运营网站时 |
| 443 (TCP) | 网站(HTTPS) | 运营网站时 |
| 25565 (TCP) | Minecraft Java 版 | 开设 Minecraft 服务器时 |
| 19132 (UDP) | Minecraft 基岩版 | 开设基岩版服务器时 |
| 3306 (TCP) | MySQL / MariaDB | 请勿开放 |
| 5432 (TCP) | PostgreSQL | 请勿开放 |
| 6379 (TCP) | Redis | 请勿开放 |
| 3000、8000 等 | 自己开发的应用 | 通常不开放,而是放在 Nginx 后面 |
Discord 机器人不是从外部接收连接的程序,因此不需要开放端口。
为什么不能开放 DB 端口,请参考安装数据库;将应用放在 Nginx 后面的方法,请参考将自己开发的 Web 应用部署到服务器。
TCP 与 UDP
即使端口号相同,TCP 和 UDP 也需要分别开放。请按照程序说明书中写的方式开放。例如,基岩版服务器使用 UDP,所以开放 19132/tcp 是无法连接的。
如何开放端口
请参考在防火墙中开放端口。Linux(ufw)的示例如下。
sudo ufw allow 25565/tcp
sudo ufw allow 19132/udp
确认程序是否正常打开端口并在等待连接
如果已经开放了防火墙却仍无法连接,请在服务器内确认程序是否确实在该端口上等待连接。
sudo ss -tulpn
在 Local Address 列中查找端口号。
0.0.0.0:25565或*:25565—— 可以接收外部连接的状态。127.0.0.1:25565—— 只接收服务器内部连接的状态。需要在程序设置中更改连接地址,外部才能进来。- 列表中没有 —— 程序已关闭,或正在使用其他端口。
从本地电脑确认端口是否已开放(Windows)
在本地电脑的 PowerShell 中执行。(只能确认 TCP 端口)
Test-NetConnection server-ip -Port 25565
如果显示 TcpTestSucceeded : True,说明可以从外部连接到该端口。