服务器买好了,外部访问不了,或者装个依赖包一直超时。这种情况很常见,多半卡在外网这一层。把阿里云外网的工作方式弄清楚,配置起来会顺很多。

外网到底指什么
阿里云外网,指的是云上资源和公网之间的通路。在专有网络VPC里,云服务器默认只有私网地址,只能在同一个VPC里互相通信。想跟互联网收发数据,就得额外开通公网能力。
这件事可以拆成两个方向看。出去的流量,是服务器去拉软件源、调第三方接口;进来的流量,是用户通过公网访问你的网站或接口。两个方向的配置方式不一样,排查时最好分开想。
三种常见的接入方式
- ECS公网IP,创建实例时直接分配一个公网地址。配置最简单,适合测试环境或只有一台机器的小应用。
- 弹性公网IP(EIP)可以独立购买和管理,解绑后还能再绑到别的实例上。需要固定出口,或者出故障时想快速切换到备用机器,用它比较合适。
- NAT网关让VPC里没有公网地址的多台服务器共用一个公网出口。它只负责主动访问外部,外面的人连不进来,安全上更稳。
选的时候可以这样判断。外部要访问进来,用EIP或负载均衡;内部服务器只是要出去访问外部,用NAT网关。
一个小团队的改造过程
有个做服饰零售的小团队,早期把网站、订单服务和数据库都放在一台ECS上,每台机器都绑了公网IP。业务涨起来以后,问题一个接一个。安全扫描天天报警,带宽费用忽高忽低,还有一次误操作,把数据库端口直接暴露在了互联网上。
他们分三步改。第一步,把数据库和订单服务挪进私网子网,取消公网IP,只允许应用服务器通过内网访问。第二步,在前面放一台公网型SLB,绑上EIP,由它统一接收用户的HTTPS请求,证书也配在这一层。第三步,给私网服务器建一个NAT网关。支付回调、短信这些外部接口它们照样能调,但服务器本身不再暴露在公网上。
改完之后,公网入口从好几个收成了一个,安全组规则从几十条减到十几条,出问题时排查的范围也小了很多。这个案例让我觉得,外网配置的重点是尽量缩小暴露的面积。能通只是第一步,通了之后还得想清楚谁能进来。
配置时容易忽略的几个地方
- 安全组只放行业务需要的端口。网站一般开80和443就够了。数据库端口千万别对0.0.0.0/0开放,这是最常见的一类事故。
- 带宽计费模式要按业务选。流量波动大的业务,按量计费通常更划算;带宽比较稳定的,可以考虑固定带宽。具体价格以阿里云官网当期页面为准,别直接拿别人的报价套用。
- 路由表要检查。私网子网如果需要访问外网,路由表必须指向NAT网关。漏了这一步,常见现象是内网之间都正常,外网却一直超时,很容易让人误以为是防火墙的问题。
- 域名解析和备案。对外提供网站服务时,域名要解析到公网入口,并按国家规定完成备案。备案没做完,网站可能无法正常对外提供服务。
外网不通时怎么排查
我一般按从近到远的顺序一层层看。先确认实例有没有公网地址,或者私网子网的路由有没有指向NAT网关;再看安全组和网络ACL有没有放行对应方向的流量;然后检查系统内部的防火墙配置;最后用curl或telnet测试目标地址和端口能不能连上。大多数问题在这几步里就能找到。
几个常见误区
- 每台服务器都绑公网IP。看起来省事,实际是把攻击面一起放大了,成本也跟着上去。
- 只改安全组,不看路由。安全组决定放不放行,路由决定流量走不走得到。两边都对,链路才通。
- 上线之后就不再管。扩容、换域名、改端口,每一次变动都可能影响外网配置。建议定期过一遍,哪怕只是半年一次。
外网是云上架构里最容易被忽略、也最容易出风险的一环。入口和出口提前规划好,后面迁移和扩容时能省下不少返工的时间。