常见端口速查表
| 场景 | 说明 | 建议 |
|---|---|---|
| 防火墙配置 | 配置服务器防火墙规则时,需了解各端口对应的服务,只开放必要端口 | 仅开放 80/443 对外,数据库端口禁止外网访问 |
| 安全审计 | 检查服务器开放端口是否存在安全隐患,识别未授权暴露的高危端口 | 重点排查 22/3389/3306/6379 等敏感端口 |
| 服务部署 | 部署应用服务时需确认端口未被占用,并正确配置端口映射 | 使用 netstat -tlnp 检查端口占用 |
| 网络排障 | 排查网络连接问题时,需确认目标服务端口是否正常监听 | 使用 telnet/nc 测试端口连通性 |
| Docker 端口映射 | Docker 容器部署时需将容器端口映射到宿主机,避免端口冲突 | docker run -p 8080:80 映射 Web 端口 |
| 开发环境配置 | 本地开发时各框架/服务使用默认端口,了解避免冲突 | Node 默认 3000,Django 默认 8000 |
端口号是传输层(TCP/UDP)中用于标识不同服务的 16 位整数,范围 0~65535。同一 IP 地址可通过不同端口号区分多个服务,如 80 端口运行 Web 服务,3306 端口运行 MySQL。
0~1023 为知名端口(Well-Known),由 IANA 分配给标准服务(如 80-HTTP、443-HTTPS);1024~49151 为注册端口(Registered),分配给特定应用(如 3306-MySQL);49152~65535 为动态/私有端口,操作系统临时分配给客户端连接。
TCP 是面向连接的可靠协议,有三次握手,适用于 Web、数据库等需要保证数据完整性的场景;UDP 是无连接的快速协议,不保证送达,适用于 DNS、视频流、游戏等对延迟敏感的场景。
Windows 使用 netstat -ano | findstr :端口号;Linux 使用 netstat -tlnp 或 ss -tlnp。macOS 使用 lsof -i :端口号。查看结果可确认端口是否被某个进程监听。
常见高危端口包括:22 (SSH)、23 (Telnet)、3389 (RDP)、3306 (MySQL)、6379 (Redis)、27017 (MongoDB)。这些端口如果暴露到公网且未做安全配置,极易被攻击者利用。
数据库端口(如 3306、5432、6379)暴露到公网意味着任何人都可以尝试连接。即使有密码保护,也可能遭受暴力破解攻击。正确做法是通过防火墙限制只允许应用服务器 IP 访问数据库端口。
端口号是 TCP/IP 协议中用于区分不同网络服务的 16 位整数,范围从 0 到 65535。每个端口对应一种特定的网络服务,如 80 端口对应 HTTP Web 服务,443 端口对应 HTTPS 安全 Web 服务。
端口分类:
- 知名端口(0~1023):由 IANA 统一分配,如 20/21 (FTP)、22 (SSH)、80 (HTTP)、443 (HTTPS)
- 注册端口(1024~49151):分配给特定应用程序,如 3306 (MySQL)、6379 (Redis)、8080 (HTTP Proxy)
- 动态端口(49152~65535):操作系统临时分配给客户端连接
安全建议:服务器应只开放必要端口,数据库端口(3306、5432、6379、27017)严禁暴露到公网,远程管理端口(22、3389)应限制访问 IP 范围。