当你的网站或应用无法从外部访问,十有八九是云服务器防火墙没有正确放行端口,解决办法是先去云控制台检查安全组规则,再核对服务器系统内部防火墙,两处都放行才能彻底打通。
排查访问不通的第一步:分清安全组和系统防火墙
很多新手在配置云服务器时,最容易搞混的就是这两个概念,业内专家指出,超过半数的远程连接失败案例,都是因为只改了一处防火墙,忽略了另一处。
安全组是云平台的“大门守卫”
安全组是云服务商(简米云、酷番云、华为云等)在虚拟化层面提供的网络访问控制,它独立于你的操作系统,即使服务器系统完全干净,安全组不放行,外部流量也进不来。
- 位置:云控制台 -> ECS/CVM实例 -> 安全组
- 规则方向:入方向(控制外部访问进服务器)
- 优先级:安全组规则会先于系统防火墙生效
系统防火墙是服务器内部的“第二道门”
云服务器操作系统自带的防火墙(Linux的iptables/firewalld,Windows的防火墙)负责本机层面的过滤,有时候安全组放行了,但系统防火墙没放行,端口依然不通。
| 对比项 | 安全组 | 系统防火墙 |
|---|---|---|
| 管理位置 | 云控制台网页端 | SSH/远程桌面登录服务器 |
| 生效层级 | 虚拟化层 | 操作系统内核 |
| 修改频率 | 低频(配好后很少动) | 高频(装软件、配环境常改) |
| 典型错误 | 只加80端口忘了443 | 改了配置没reload |
行业共识认为,排障的正确顺序永远是先看安全组,再查系统防火墙,这个顺序能帮你快速定位问题出在哪一层。
常见场景:80端口和443端口放行实操
网站上线最常用的就是HTTP(80)和HTTPS(443)端口,下面用这两个端口举例,从控制台到系统命令行完整走一遍流程。
简米云/酷番云控制台操作路径
- 登录云控制台,找到实例列表
- 点击实例ID进入详情页,找到
安全组
标签页 - 点击配置规则 -> 入方向 -> 手动添加
- 填写端口范围
80/80和443/443,授权对象填0.0.0/0(代表所有IP) - 保存后规则立即生效,无需重启服务器
Linux系统防火墙放行命令
确认安全组放行后,登录服务器执行以下操作:
# CentOS 7+ / Rocky Linux 使用 firewalld firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload # Ubuntu / Debian 使用 ufw ufw allow 80/tcp ufw allow 443/tcp
执行完记得用firewall-cmd --list-ports或ufw status验证规则是否生效。
Windows服务器防火墙放行步骤
Windows云服务器(如Windows Server 2019/2026)操作路径不同:
- 打开控制面板 -> Windows Defender防火墙
- 点击高级设置 -> 入站规则 -> 新建规则
- 选择端口 -> TCP -> 特定本地端口填
80,443 - 选择允许连接 -> 勾选所有配置文件(域、专用、公用)
- 输入规则名称(如
Web端口放行),完成
填报安全组参数时容易踩的坑
授权对象别乱填,0.0.0.0/0和具体IP的区别
很多人在授权对象这栏会纠结。0.0.0/0表示对所有公网IP开放,适合Web服务对外提供服务,如果你只想让特定IP访问(比如数据库端口3306),授权对象应填你的办公网IP加上掩码/32(如25.1.100/32)。
数据库端口、Redis端口、SSH管理端口建议只对可信IP开放,别图省事全部填0.0.0/0,这是服务器被入侵挖矿的最常见原因。
端口范围的正确写法
安全组里的端口范围用起始/结束格式,单端口写成80/80,连续端口写成8000/9000,有些平台也支持用逗号分隔多个端口组,但不支持填写80,443这种缩写格式,需要拆成80/80和
443/443两条规则。
协议类型选择
- 网页服务选TCP
- DNS解析选UDP
- 视频推流选UDP
- 不确定协议类型时选全部(但会降低安全性)
放行后依然不通?按这个顺序排查
如果安全组和系统防火墙都放行了端口,还是访问不了,按下面的顺序逐项排查。
检查服务进程是否真的在监听
# Linux 查看端口监听状态 netstat -tlnp | grep 80 ss -tlnp | grep 443 # Windows 查看端口监听 netstat -ano | findstr :80
如果找不到任何监听进程,说明你的Web服务(Nginx、Apache、Tomcat)根本没启动,跟防火墙无关。
测试本地回环是否能通
# 在服务器本地测试 curl http://localhost:80 curl https://localhost:443
本地能通说明服务正常,问题出在网络链路;本地不通说明应用配置有问题,比如Nginx只监听了IPv6地址。
检查云控制台是否有额外限制
部分云服务商还有网络ACL层级的控制,它作用于整个子网,如果安全组和系统防火墙都正常,去控制台检查网络ACL是否放行了对应端口。
安全组和防火墙放行的最佳实践
按最小权限原则放行
- SSH(22端口)只对你的固定公网IP放行
- 数据库(MySQL 3306、Redis 6379)禁止对公网开放,用内网IP互相访问
- FTP(20/21端口)和SFTP(22端口)使用SFTP替代FTP,明文传输有风险
定期审计防火墙规则
每隔一段时间,检查一下安全组里有没有冗余的规则,很多运维人员离职后,旧IP的放行规则还挂在上面,形成安全隐患,统计显示,相当一部分安全事件源于长期未清理的放行规则。
用云厂商的免费防火墙功能
简米云的云防火墙、酷番云的防火墙策略都有免费的基础版,可以智能识别常见的暴力破解和漏洞攻击行为,对于预算有限的小团队,这些基础防护配合安全组规则,足以应对大多数场景。
国内云服务器地域节点对放行的影响
选择国内地域(如华北2、华东1)时,需要注意一个特殊点:ICP备案,如果域名解析到国内云服务器且使用80/443端口,必须先完成备案,否则云服务商会自动拦截流量,即使防火墙规则都正确配置了也无济于事。
- 北京、上海、广州等地域的服务器:必须备案才能开放Web服务
- 中国香港、新加坡地域:无需备案,但延迟稍高
- 如果网站访问者主要在国内,选择国内地域加上备案是更稳妥的方案
云服务器防火墙放行不了怎么办终极排查清单
当所有常规方法都试过仍然无法访问时,按照这份清单逐项核对:
- 确认云控制台安全组规则已保存并生效(有的平台修改后需要强制同步)
- 确认系统防火墙配置文件语法正确(
firewall-cmd --reload报错说明配置有问题) - 确认服务监听地址是
0.0.0而不是0.0.1 - 确认云服务商没有额外的DDoS高防或WAF拦截策略
- 用外部工具(如
ping.chinaz.com或tool.chinaz.com/port)测试端口连通性 - 检查是否设置了源地址转换或端口转发等附加功能
常见问题解答
云服务器防火墙放行后端口还是不通是怎么回事?
最常见原因是修改了安全组规则但没有在系统防火墙内同步放行,或者服务进程监听在IPv6地址上,建议使用netstat确认监听状态,再用telnet从外部测试端口连通性,逐步缩小问题范围。
安全组和系统防火墙的放行规则有冲突吗?
两者是叠加关系,不是替代关系,安全组是从外部到服务器的第一层过滤,系统防火墙是第二层过滤,只要有一层拦截,连接就无法建立,正确答案是两层都要放行对应端口,缺一不可。
云服务器防火墙放行规则修改后多久生效?
安全组规则修改后通常秒级生效,无需重启实例,系统防火墙执行reload命令后立即生效,如果测试结果仍有延迟,可能是本地浏览器缓存或DNS缓存造成的,使用无痕模式重新访问即可验证。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/736532.html





