烟消火灭网

阿里云ECS默认只开放22和3389,想跑个Web服务或者搭个数据库,端口不通就是不通。安全组不放行,你在服务器里把防火墙关了也没用——流量根本到不了网卡。这事儿我踩过坑,半夜调API调不通,最后发现

阿里云弹性公网怎么开端口

阿里云ECS默认只开放22和3389,阿里想跑个Web服务或者搭个数据库,云弹端口不通就是网开不通。安全组不放行,端口你在服务器里把防火墙关了也没用——流量根本到不了网卡。阿里这事儿我踩过坑,云弹半夜调API调不通,网开最后发现是端口安全组没加规则。

先说清楚一个概念:阿里云有两层防火墙。阿里一层是云弹安全组,工作在ECS实例外面,网开由阿里云的端口网络虚拟化层执行。另一层是阿里操作系统自带的iptables或firewalld。安全组是云弹硬门槛,它不放行,网开包直接丢。操作系统防火墙是软门槛,包到了网卡才被拦。所以开端口的顺序必须是先安全组、后系统防火墙。

安全组怎么加规则

登录阿里云控制台,进ECS管理页面,左侧找到“网络与安全”下面的“安全组”。找到你实例绑定的那个安全组,点“配置规则”。这里分入方向和出方向。出方向默认全放行,不用管。入方向就是控制外面进来的流量。

点“手动添加”,弹出表单。关键字段就几个:

  • 规则方向:入方向
  • 授权策略:允许
  • 协议类型:看你要开什么。TCP、UDP、ICMP、GRE、ALL。开Web端口选TCP
  • 端口范围:比如要开8080,就填8080/8080。要开一段就填8000/9000
  • 授权对象:0.0.0.0/0表示所有IP都能访问。生产环境别这么干,填你自己的IP或者特定网段

保存。规则立即生效,不用重启实例。我实测过,添加后几秒钟内新端口就能通了。

系统防火墙也得看一眼

CentOS 7以上默认用firewalld。查状态:systemctl status firewalld。如果running,加端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent,然后firewall-cmd --reload。少reload那一步,规则不生效,很多人卡在这儿。

Ubuntu系一般用ufw。开端口:ufw allow 8080/tcp。完事ufw status确认一下。

还有些人用iptables直接写规则。那就iptables -A INPUT -p tcp --dport 8080 -j ACCEPT,然后service iptables save。但iptables规则重启会丢,得存到配置文件里。

一个容易忽略的点

如果你用的是阿里云轻量应用服务器,不是ECS,那防火墙在轻量服务器的控制台里单独配。它也有自己的一套防火墙规则,跟ECS的安全组是两码事。我见过有人在ECS安全组里折腾半天,结果用的是轻量服务器,规则加错了地方。

另外,如果你前面挂了SLB或者NAT网关,那流量路径又不一样。SLB有自己监听端口的配置,NAT网关有DNAT规则。这种情况安全组反而不是第一道关卡了。排查的时候用telnet或者nc从外部测,能通就是通了,不通就一层层往回查。

开端口这事本身不复杂,复杂的是搞不清楚流量到底走在哪条路上。安全组、系统防火墙、SLB监听、NAT规则,四个地方都可能拦你。我的习惯是每加一个服务,先用ss -tlnp确认服务本身在监听,再从外部测端口连通性,不通就按上面的顺序逐个排查。省时间。

访客,请您发表评论:

© 2026. sitemap