很多人在阿里云上部署网站、搭数据库或者跑小程序后端时,都会遇到同一种情况:服务已经启动,外部却打不开。这时先怀疑阿里云服务器端口没有放行,通常是最快的判断方向。下面用一个上线时常见的案例,说明端口访问不通时该看哪几处。

外部访问要过两道关
服务器上的程序要被外部访问,一般要经过两层过滤。第一层是系统自带的防火墙,Linux 上常见的有 firewalld、ufw 和 iptables。第二层是阿里云控制台里的安全组,它在云平台层面决定流量能不能进到实例。两层都要看,只改其中一层,很容易反复试却没有效果。
安全组可以理解为一组虚拟防火墙规则,分入方向和出方向。默认情况下,安全组通常只放行 22(SSH)等少数端口,其他端口是关闭的。所以在服务器上执行 ss -lntp 能看到服务已经在监听,外部依然连不上,这种情况很常见,问题多半出在安全组这一层。
一个 Node.js 项目的上线案例
某个小团队在阿里云 ECS 上部署了一个 Node.js 项目,服务监听 3000 端口。本地测试没有问题,服务器上用 curl 访问 127.0.0.1:3000 也能拿到页面,但浏览器用公网 IP 加端口访问,一直超时。
他们的排查顺序大致如下:
- 用 ss -lntp | grep 3000 确认进程在监听,结果显示地址是 127.0.0.1,只接受本机连接。
- 把启动参数改成监听所有网卡(0.0.0.0),公网访问好了一部分,但仍然不通。
- 检查系统防火墙,firewalld 处于关闭状态,这一层可以排除。
- 进入 ECS 实例绑定的安全组,查看入方向规则,只有 22 和 80 放行,3000 没有配置。
- 添加入方向规则,协议选 TCP,端口范围填 3000/3000,授权对象按实际需要设置。保存后访问恢复正常。
这个例子里有两个问题叠在一起:服务绑定的地址,和安全组的规则。前者让服务只接受本机连接,后者让外部流量在进入实例前就被挡掉。只改其中一个,效果都不完整,这也是排查时容易走弯路的原因。
在控制台开放端口的步骤
- 登录阿里云 ECS 控制台,找到目标实例,进入它绑定的安全组页面。
- 点击“配置规则”,切换到“入方向”标签页。
- 点击“手动添加”,填写端口范围、协议类型和授权对象。
- 授权对象填 0.0.0.0/0,表示所有公网 IP 都能访问。这种写法最省事,但范围也最宽,测试时可以用,正式环境建议只授权明确的 IP 段。
- 保存后规则通常几秒内生效,一般不需要重启服务器。
安全组是有状态的。入方向放行之后,对应的返回流量会自动允许,不需要再单独配置出方向规则。刚接触的人看到出方向没有规则,容易多想一步,其实不用额外处理。
先在服务器内部确认状态
改安全组之前,先在服务器内部确认服务状态,能很快判断问题在哪一层。常用的几条命令:
- ss -lntp:列出当前监听的 TCP 端口和对应进程,看服务是不是绑在了你期望的地址上。
- curl -I http://127.0.0.1:端口号:确认服务在本机能正常响应。
- firewall-cmd –list-ports:在 CentOS 或 Alibaba Cloud Linux 上查看 firewalld 放行的端口。
- ufw status:在 Ubuntu 上查看 ufw 的状态和规则。
判断方法很直接。本机 curl 能通、公网不通,问题大概率在安全组或系统防火墙,接着查这两处。本机 curl 也不通,就回到服务本身,检查配置和进程是否正常。
别图省事全部放行
有人为了省事,把安全组入方向直接设成全部端口、来源 0.0.0.0/0。测试时这样能很快跑通,但放在公网服务器上风险很高,端口扫描和暴力破解都可能找上门。比较稳妥的做法是:
- 只开放业务真正需要的端口,用不到的及时关掉。
- 数据库端口(如 3306、6379)尽量不对公网开放,只允许内网或指定 IP 访问。
- SSH 端口可以限制到办公网络的出口 IP,缩小被扫描和爆破的范围。
- 隔一段时间翻一遍安全组,删掉已经用不到的规则。规则留得越久,越难说清它为什么存在。
端口收紧只是第一步。对外服务还要配合应用层的身份认证、HTTPS 加密和日志监控,光靠端口放行挡不住应用本身的漏洞。
常见问题怎么看
- 安全组已放行,访问仍超时。先看服务是否绑定在 0.0.0.0,再确认系统防火墙有没有拦截。
- 规则添加了却不生效。核对实例实际绑定的安全组。一台实例可能绑了多个安全组,改错了一个,另一个里看不到变化。
- 服务启动失败,提示端口被占用。用 ss -lntp 找到占用进程,确认是不是旧进程没有退出,必要时换一个服务端口。
- 用了负载均衡或容器服务。入口规则可能配在 SLB 或 Kubernetes Service 上,只看 ECS 安全组会找不到问题所在。
排错时从内到外逐层看,服务绑定、系统防火墙、安全组依次排除,速度会快不少。日常维护里规则尽量少开、定期清理,访问方便和安全之间才好取得平衡。