安全组/防火墙是什么?端口放行一文搞懂
“端口不通”基本都离不开两件东西:安全组(云平台侧)和防火墙(服务器系统侧)。 这篇只讲你需要用到的结论:什么时候放行、放行哪些、怎么验证是否生效。
一、先记住一句话:两道门都要开
- 安全组:云平台的“入口闸门”,没放行就到不了你的服务器。
- 系统防火墙:服务器里的“第二道门”,安全组放行了也可能被系统拦。
- 结论:端口想从公网访问,通常需要两边都允许。
二、最常用端口:新手通常只需要这几个
| 用途 | 协议 | 端口 | 是否建议公网开放 |
|---|---|---|---|
| 网站 HTTP | TCP | 80 | 是 |
| 网站 HTTPS | TCP | 443 | 是 |
| Linux 远程(SSH/SFTP) | TCP | 22(或自定义) | 建议只给自己IP |
| Windows 远程(RDP) | TCP | 3389 | 建议只给自己IP |
| 数据库(MySQL/Redis 等) | TCP | 3306/6379 等 | 不建议公网开放 |
三、标准做法:怎么放行才安全
- 安全组入方向:放行 80/tcp 与 443/tcp,来源 0.0.0.0/0(所有IP)。
- 系统防火墙:同样允许 80/443。
- SSH(22 或你自定义端口)、RDP(3389)尽量只允许你的固定公网IP。
- 如果你经常换网络,就先临时放开,连上后再收紧为白名单。
四、怎么验证端口真的通了
macOS/Linux:curl -I http://公网IP:端口号
端口放行了但仍不通,常见原因是:服务本身没启动(没监听)。
五、最常见的 4 个坑
- 只开了安全组,忘了系统防火墙(或反过来)。
- 端口开了,但服务没启动,实际没有监听。
- 把数据库端口直接对公网开放,容易被扫、被爆破、被拖库。
- 远程端口对所有人开放,几乎必被暴力尝试登录。