← 返回博客首页

常用端口速查:从 21 到 443,你到底该开哪个

为什么总有人说『443 之外少暴露』

搭建一台服务器,最常见的安全建议就是「尽量只开 80/443」。原因很简单:端口越多,暴露面越大——每个开放端口都是一个可能被利用的入口。想把这个建议落到操作里,先得认识端口本身。

端口是什么,为什么有 65535 个

一台机器上同时跑着 Web、数据库、SSH……操作系统怎么把网络包准确地交给对应的应用?靠 端口号:TCP/UDP 报文头的目标端口决定数据交给谁。

TCP 报文头: [源端口][目标端口][序号]…
目标端口 = 该机器上哪个应用在处理这个连接

0–65535 一共 65536 个数字,其中 1–1023 是知名端口(well-known,常需特权绑定),1024–49151 注册端口,49152–65535 动态/私有端口。

常用端口速查(按用途)

Web 与加密

端口 服务 备注
80 HTTP 常做 301→443
443 HTTPS 加密、默认必开
8443 HTTPS 备用 Web 管理/备用

远程管理与运维

端口 服务 备注
22 SSH 建议改默认/仅密钥/限来源
3389 RDP (Windows) 公网强烈不建议直开
21 FTP 明文传输,建议 SFTP/SCP

文件传输

端口 服务 备注
21 FTP 明文
22 SFTP/SCP 走 SSH,推荐
990 FTPS(隐式) 加密 FTP

数据库

端口 服务 备注
3306 MySQL/MariaDB 通常只内网
5432 PostgreSQL 只内网
6379 Redis 请勿公网直开
27017 MongoDB 请勿公网直开

开发与调试

端口 服务 备注
3000 Node/Vite dev 本地绑定可
3300 常用开发服务 本地用
5000/8000 Flask/通用 本机绑定
53 DNS UDP,服务私有

邮件与更多

端口 服务 备注
25 / 587 SMTP / 提交 25 常被云封禁
110 / 143 POP3 / IMAP 明文,推荐加密
993 / 995 IMAPS / POP3S 加密推荐
443/993 Web/加密邮件

源端口 vs 目标端口(一句话)

  • 目标端口=客户端要连的『服务门牌』;
  • 源端口=客户端发起时临时随机挑的高位端口,服务端回包据此送达。

出站连接源端口随机,一般无需固定放开;入站才关心『要对外放哪个目标端口』。

服务如何被发现(端口扫描)

端口与不同服务之间的关系不是魔法:服务在自己监听的端口上应答,所以可以用端口探测看某 IP 上是否真有服务在响应。这也是「安全自查」与攻击者侦察共用的一招——区别在于你查自己、对方查你。因此最小化开放 + 只对外放必需端口,是降低被扫描面最直接的手段。

安全基线清单

  • [ ] 入站只放:80/443 + 所需应用端口,其余 deny
  • [ ] SSH:改非默认端口 / 密钥登录 / 限来源 IP(至少一项);
  • [ ] 数据库、Redis、Docker、调试口:只绑内网或本机,不对外开放
  • [ ] 用云安全组/主机防火墙落实规则,不用『全放行再补救』;
  • [ ] 定期对公网 IP 自作一次端口扫描,确无遗漏的管理口。

自查

拿一台你管理的服务器,用在线端口/IP 查询工具列一下它当前对外开放的端口,再对照上面的基线砍一砍:问自己一句——『这个端口真的需要被公网访问吗?』 很多时候答案是否定的,砍掉一个端口,就少一个攻击面。

常见问题

『端口是否要开』和『这个服务用什么协议』是什么关系?

端口只是 0–65535 的数字标识,真正决定该开不开的是**你需不需要对外提供某服务**。同理,服务按**协议**分:HTTP/HTTPS(80/443)、SSH(22)、MySQL(3306)…端口把『同一台机器的不同应用』区分开,协议决定『面向该端口的流量怎么解析』。因此『开端口 = 允许特定协议的服务对外可达』,与该服务的安全强度(是否加密、是否需认证)强相关——这也是为何 443 常更安全、21/3389 外露更危险。

源端口和目标端口有什么区别?

**目标端口**是客户端要连接的『服务所在端口』(如访问网站就是目标 443);**源端口**是客户端发起连接时**临时随机**挑的一个高位端口(通常 1024–65535 随机),服务端回包时据此把数据送对。因此:要『对外提供』只关心目标端口;出站连接源端口常随机,一般无需固定开放(除非做严格白名单出站)。防火墙规则也多是『入站限制:只放行需要的目标端口;出站默认放行高位』。

怎么快速知道某端口被什么占了?

各系统都有查询:Linux 用 `ss -tlnp`/`netstat -tlnp`,看监听在哪个端口、由哪个进程;Windows 用 `netstat -ano` 拿 PID 再 `tasklist` 定位;macOS `lsof -i :端口`。``在在线服务与本地间也可用「随机端口」「IP 查询」把端口与公网 IP/服务关联。若目标是『这个端口能不能对外开放』,配合 DNS/端口探测类工具看该 IP 上是否真有服务在答,比猜更可靠。

搭建服务器的端口安全基线是什么?

核心是**最小化原则**:只对外放行必须的服务,其余 `deny`。基线建议:Web 只放 80/443(443 优先,80 做跳转);SSH 改非默认端口或用仅密钥+频繁改、必要时限来源 IP;数据库、Redis、Docker、调试端口(如 5000/3000)**绝不直接暴露公网**,只绑内网/本机;用防火墙(云安全组够了,入站只放 22/80/443/所需应用端口);定期用端口扫描自己对公网 IP 测一遍,确认没有漏开的**管理口**。具体数字可用随机端口/常用端口工具核对后填入规则。

← 返回博客首页