域名要指向另一个地址,内网服务要对外提供访问,或者一台服务器上的几个应用要共用一个公网端口,这些需求在阿里云上都可以通过阿里云转发来解决。转发的做法有好几种,工作在不同层级,选错了就要绕很多路。先想清楚自己要的是哪一种,配置会顺很多。

一、三种常见的转发方式
阿里云上的转发大致分为三类,各自处理的网络层次不一样。
- 域名转发(URL转发):在云解析 DNS 里配置,把一个域名的访问请求跳到另一个地址。老域名迁移、几个站点合并到同一个品牌下,常用这种方式。
- 网络层转发(端口转发):用 NAT 网关的 DNAT 规则,或者在 ECS 上用 iptables,把某个公网端口的流量转到内网主机的指定端口。
- 负载均衡转发:通过负载均衡 CLB 的监听器,按协议和端口把请求分给后端服务器组,还可以配置健康检查和会话保持。
域名转发在 HTTP 层工作,相当于告诉浏览器换个地址访问,地址栏会跟着变。端口转发在传输层替换目标地址,客户端通常察觉不到。负载均衡主要负责分流和高可用。
二、老域名迁移:用 301 保住旧地址的流量
假设一个电商团队的品牌域名从 old-shop.example.com 换到了 new-shop.example.com。外部已经有不少外链和搜索引擎收录指向旧域名,如果直接下线旧域名,访问会中断,积累的权重也会跟着流失。
比较稳妥的做法是在云解析里给旧域名添加显性 URL 转发,目标地址填新站点的完整 HTTPS 地址,类型选 301 永久重定向。用户访问旧域名时会自动跳到新站,搜索引擎通常也会逐步把权重转到新地址上。
有个细节容易漏掉。如果旧页面需要保留路径,比如 old-shop.example.com/product/123 要跳到 new-shop.example.com/product/123,就要先确认所选的转发方式是否支持路径透传。不支持的话,所有页面都会统一跳到首页,用户找不到原来的商品,体验会变差。
三、临时开放内网后台:DNAT 是个轻量选择
再看另一个场景。数据团队需要让合作方临时访问一套部署在私有网络里的管理后台。后台运行在 ECS 的 10.0.0.8:8080,这台实例没有绑定公网 IP。
可以在 NAT 网关上绑定一个弹性公网 IP,新增一条 DNAT 规则,把公网 8080 端口映射到 10.0.0.8 的 8080。合作方用公网 IP 加端口就能访问。项目结束后删掉这条规则,后台本身不用改动,实例也不需要暴露在公网上。
不过这个方案只做了网络层的映射,不提供任何身份认证。如果后台没有登录机制,知道地址的人都能进。开放之前,至少要在安全组里限制来源 IP,或者在后台前加一层统一认证。
四、单机多应用共用 80 端口:交给 Nginx 按域名分发
还有一种很常见的情况。一台 ECS 上同时跑着博客、接口服务和文档站,三个应用分别监听 3000、4000、5000 端口。外部只想开放 80 端口,并用域名区分它们。
做法分两层。ECS 上装 Nginx 作反向代理,按域名把请求分别转给本机的三个端口;云解析里为三个子域名各加一条解析记录。外部只需要记住域名,应用端口全部藏在内部。
如果只是简单的端口映射,也可以用 iptables 的 PREROUTING 规则实现,但规则一多,维护会越来越费劲。需要按域名或路径做细一点的分发时,反向代理的配置通常更清楚。
五、配置前后要注意的几件事
- 规则生效前先检查安全组和防火墙有没有放行对应端口。这一步漏掉,规则写对了也访问不到。
- 使用 DNAT 或 iptables 时,要开启 ECS 的 IP 转发(net.ipv4.ip_forward),并确认回包路径是通的。否则常见现象是请求能发出去,响应却回不来。
- 域名跳转如果关系到 SEO,优先用 301。302 是临时跳转,搜索引擎可能不会把权重转过去。
- 每条转发规则都写清楚用途和负责人。临时规则在项目结束后及时删除,留着不管就是一个长期的安全隐患。
- 负载均衡要配置健康检查路径。没有这个,后端某台出了问题,CLB 仍可能把流量分过去。
六、转发不生效时怎么排查
转发出问题时,建议从外到内逐层检查,不要急着反复改规则。改来改去,很容易把原本正确的配置也改坏。
- 先用 telnet 或 curl 测试公网地址和端口是否能通,判断问题出在 DNS 还是网络。
- 检查安全组和网络 ACL 是否放行了对应流量。
- 核对转发规则的源端口、目标地址和目标端口,内网 IP 尤其容易写错一位数字。
- 登录目标服务器,确认应用确实在监听该端口,再用 tcpdump 看请求有没有到达。
- 如果是域名转发,检查 DNS 缓存是否已刷新。TTL 设得较长时,改动要等一段时间才会生效。
七、选对层级,少走弯路
阿里云转发没有放之四海而皆准的方案,关键是先想清楚要解决什么问题。域名迁移用云解析的 URL 转发;内网服务临时对外,用 NAT 网关的 DNAT 或 iptables;多应用共用入口,交给 Nginx 按域名分发;流量分配和高可用,则由负载均衡承担。层级选对了,出错的概率会低很多。