
你配置防火墙或安全组时,看到一列端口号。你知道22是SSH,80是HTTP,443是HTTPS。但3306是什么?6379是什么?27017是什么?你每次都要查。
今天把它们整理成一张速查表。按分类排好,附一句话说明。下次不用百度了。
先看一个数据
在安全事件的统计中,端口配置错误是常见问题之一。3306端口对全网开放、6379端口无密码被扫、27017端口暴露在外。不是黑客技术高,是你开了门。知道端口是干什么的,你才知道该不该开。
Web服务端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 80 | TCP | HTTP | 网站默认端口。没加密,数据明文传输 |
| 443 | TCP | HTTPS | 加密版HTTP,有SSL证书 |
| 8080 | TCP | HTTP代理 | 常用作开发测试或代理服务端口 |
| 8443 | TCP | HTTPS备用 | 常用于管理后台或替代443 |
安全建议:80和443是唯一应该对全网开放的Web端口。其他Web相关端口(如8080、8443)建议加访问限制。
远程管理端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 22 | TCP | SSH | Linux远程管理,修改端口可避开批量扫描 |
| 3389 | TCP | RDP | Windows远程桌面 |
| 5900 | TCP | VNC | 图形化远程控制,比RDP慢 |
安全建议:22端口不要对全网开放,只允许你的IP访问。3389和5900建议配合VPN使用。22端口被改到其他端口后,批量扫描就扫不到你了。
数据库端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 3306 | TCP | MySQL/MariaDB | 默认端口。数据库服务 |
| 5432 | TCP | PostgreSQL | 比MySQL功能更丰富的数据库 |
| 6379 | TCP | Redis | 内存缓存/数据库,无密码时风险极高 |
| 27017 | TCP | MongoDB | NoSQL数据库,默认无密码,易被入侵 |
| 1433 | TCP | SQL Server | 微软数据库 |
| 1521 | TCP | Oracle | 企业级数据库 |
安全建议:数据库端口永远不要对全网开放。只允许应用服务器的内网IP访问。如果必须远程管理,通过SSH隧道连接。
邮件服务端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 25 | TCP | SMTP | 发邮件。很多云厂商默认封禁防垃圾邮件 |
| 465 | TCP | SMTPS | 加密发邮件(SSL) |
| 587 | TCP | SMTP提交 | 推荐替代25的提交端口,需TLS认证 |
| 110 | TCP | POP3 | 收邮件,明文传输,几乎被淘汰 |
| 995 | TCP | POP3S | 加密收邮件 |
| 143 | TCP | IMAP | 收邮件,功能比POP3强 |
| 993 | TCP | IMAPS | 加密收邮件 |
安全建议:如果你不自己搭邮件服务器,这些端口都不需要开。用云厂商的企业邮件服务更省心。
文件传输端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 20 | TCP | FTP数据 | 文件传输数据通道 |
| 21 | TCP | FTP控制 | 文件传输控制命令,明文传输密码 |
| 22 | TCP | SFTP | 基于SSH的文件传输,推荐替代FTP |
| 989/990 | TCP | FTPS | FTP加密版 |
安全建议:弃用FTP(21端口)。改用SFTP(走22端口),安全且不用多开端口。
其他常见端口
| 端口 | 协议 | 服务 | 说明 |
|---|---|---|---|
| 53 | UDP/TCP | DNS | 域名解析,53端口同时支持UDP和TCP |
| 123 | UDP | NTP | 时间同步 |
| 161 | UDP | SNMP | 网络设备监控 |
| 514 | UDP | Syslog | 日志收集 |
| 873 | TCP | rsync | 文件同步,走SSH也可以用rsync |
| 1080 | TCP | SOCKS代理 | 代理服务 |
| 3000 | TCP | 开发服务 | 常见于Node.js/React开发环境 |
| 5000 | TCP | 开发服务 | 常见于Python Flask |
| 9000 | TCP | 应用服务 | 常用于PHP-FPM状态页或开发服务 |
安全组配置原则
必需端口:
- 22(SSH):你的IP限制
- 80(HTTP):0.0.0.0/0
- 443(HTTPS):0.0.0.0/0
特殊端口,仅限特定IP:
- 数据库:应用服务器内网IP
- 管理后台:办公网IP
默认拒绝所有:安全组最后一条规则应该是拒绝所有流量。
端口扫描自查
用nmap扫描自己服务器,看看开了哪些端口:
bash
nmap -sS -p- 你的服务器IP
如果看到不该开的端口,去安全组里关掉。定期扫描,保持端口干净。
真实案例
一台Redis服务器,6379端口对全网开放且无密码。被扫描到后,数据被清空,留下勒索留言:“支付比特币恢复数据”。Redis本身不是用来存持久化数据的,如果不需要持久化,服务重启就恢复了。但如果是存了业务数据的数据库,损失可能无法挽回。
最后一句
端口就是服务器的门。你知道每扇门通到哪里,才知道该锁哪扇。把这张表存下来,下次配置防火墙时对照着看。该开的开,该关的关。不该开的端口,一个都不要开。你的服务器会感谢你。




