阿里云 ESA 完全配置手册( 内网动态公网 IP 环境)

阿里云 ESA 完全配置手册( 内网动态公网 IP 环境)

本文详细介绍了利用阿里云 ESA 配置内网服务访问的完整方案。核心步骤包括:1. 环境准备,确保公网 IP 及端口转发正常;2. 配置 DDNS,将动态 IP 绑定至固定域名(如 origin.yourdomain.com);3. 在 ESA 新增站点并接入,将子域名(如 nas.yourdomain.com)CNAME 至 DDNS 域名;4. 设置回源规则,将访问流量通过指定端口(如 8080)转发至内网服务;5. 申请免费 HTTPS 证书及优化安全设置,实现隐藏真实 IP 的安全加速访问。

 次点击
25 分钟阅读

场景说明:域名托管在阿里云,内网服务器有动态公网 IP,路由器已完成端口转发。本文提供一套完整的阿里云 ESA 配置指南,涵盖环境准备、DDNS 配置、ESA 站点接入、端口回源规则配置、HTTPS 证书配置、高级优化及故障排查。

一、前置条件与环境确认

在开始配置前,请确认以下条件均已满足:

1.1 账号与服务准备

  • 阿里云账号:已完成实名认证。
  • ESA 服务开通:登录阿里云控制台,搜索“边缘安全加速 ESA”,开通服务(免费版即可满足绝大多数场景需求)。
  • 域名托管:域名已在阿里云(云解析 DNS)完成托管。

1.2 网络环境确认

  • 公网 IP:确认宽带运营商提供了公网 IP(IPv4 或 IPv6)。
  • 端口转发:已在路由器中完成端口转发配置(例如外网端口 8080 → 内网服务器端口 8080),并确认可通过 http://公网IP:端口https://公网IP:端口 正常访问内网服务。
  • 端口可用性:如运营商封锁了 80/443 等标准端口,请将内网服务端口改为其他可用端口(如 8080、8443 等)。

1.3 需准备的工具/凭据

  • DDNS 工具:推荐 Lucky、DDNS-GO,或 NAS 自带 DDNS 工具。
  • 阿里云 AccessKey:登录阿里云控制台 → AccessKey 管理 → 创建 AccessKey,获取 AccessKey ID 和 AccessKey Secret,需具备 ESA 相关操作权限(AliyunESAFullAccess)。
  • 路由器访问权限:用于配置端口转发。

二、第一步:配置 DDNS(核心:将动态公网 IP 绑定到域名)

DDNS 是整套方案的核心基础。由于家庭宽带的公网 IP 会变化,必须通过 DDNS 让一个固定的域名始终解析到当前的公网 IP,作为 ESA 回源的“锚点”。

2.1 方案一:使用 DDNS-GO(推荐,轻量通用)

  1. 下载并运行 DDNS-GO(支持 Windows / Linux / macOS / Docker)。
  2. 在配置界面中选择 DNS 服务商为“阿里云”。
  3. 填写 AccessKey ID 和 AccessKey Secret。
  4. 设置需要解析的域名(例如 origin.yourdomain.com),选择 IPv4 或 IPv6 记录类型。
  5. 设置检查间隔(建议 5 分钟)。

2.2 方案二:使用 Lucky(功能更丰富,支持 Docker)

  1. 部署 Lucky 容器。
  2. 进入 Lucky 管理界面 → DDNS 设置。
  3. 添加阿里云 DNS 解析记录,配置域名(如 origin.yourdomain.com)。
  4. 设置 IP 自动更新频率。

2.3 方案三:使用 NAS 自带 DDNS(如群晖、飞牛等)

  1. 进入 NAS 后台 → 远程访问 → DDNS。
  2. 填写域名(如 origin.yourdomain.com)和阿里云 AccessKey。
  3. 选择 IPv6 自动更新(如适用)。

2.4 验证 DDNS 是否生效

配置完成后,通过命令行验证:

bash

nslookup origin.yourdomain.com
ping origin.yourdomain.com

确认返回的 IP 地址与当前公网 IP 一致。同时确认可通过 http://origin.yourdomain.com:端口 直接访问内网服务,这是确保后续 ESA 能正确回源的关键步骤。

关键提示:ESA 免费版支持配置域名类型的源站,DDNS 域名(如 origin.yourdomain.com)将作为 ESA 回源的“源站锚点”,ESA 每次请求时都会实时解析该域名获取最新公网 IP。因此不需要在 ESA 层面做额外动态 IP 处理。

三、第二步:ESA 站点配置

3.1 新增站点

  1. 登录阿里云 ESA 控制台 → 左侧菜单“站点管理” → “新增站点”。
  2. 填写主域名(如 yourdomain.com),点击下一步。
  3. 配置参数:
    • 接入方式:建议选择 CNAME 接入(兼容性更强,无需修改域名 NS 服务器,不影响现有解析)。
    • 加速区域
      • 域名已备案 → 选“中国内地”(速度更快)
      • 域名未备案 → 选“全球(不含中国内地)”
    • 套餐类型:选择已领取的免费版或基础版。

3.2 域名所有权验证

  1. 系统会生成一条 TXT 记录(主机记录以 _esaauth 开头,记录值为验证码)。
  2. 登录阿里云云解析 DNS 控制台 → 添加记录:
    • 记录类型:TXT
    • 主机记录:填写 ESA 给出的主机记录值
    • 记录值:填写 ESA 给出的验证码
  3. 回到 ESA 控制台,点击“验证”。

3.3 配置 DNS 代理记录(CNAME 拉平)

  1. 进入已创建的站点 → “DNS” → “记录” → “添加记录”。
  2. 配置参数:
    • 记录类型:CNAME
    • 主机记录:想要使用的加速域名前缀(如 nas,即最终访问域名为 nas.yourdomain.com
    • 记录值/源站:选择“域名”,填入步骤二中配置的 DDNS 域名(如 origin.yourdomain.com
    • 代理状态:必须开启(云朵图标点亮),流量才会经过 ESA 节点
  3. (可选)在 DNS → 设置中开启“CNAME 拉平”,选择“拉平所有 CNAME”,优化解析速度。

image.png

关键点就是域名,一定是ddns解析的域名,子域名即可,主机记录就是访问时的地址。一般情况下CNAME地址是:访问域名+.a1.initxb.com。

3.4 域名解析回填(重要:让流量指向 ESA)

CNAME 记录配置后,ESA 会为 nas.yourdomain.com 生成一个专属的 CNAME 地址(如 nas.yourdomain.com.w.cdngslb.com)。

  1. 登录阿里云云解析 DNS 控制台 → 添加 CNAME 记录:
    • 主机记录:nas(与 ESA 中的主机记录一致)
    • 记录值:粘贴 ESA 提供的 CNAME 地址
  2. 在 ESA 控制台点击“查询”验证 CNAME 生效状态,显示“CNAME 已生效”后点击“我已完成 CNAME 配置”。

四、第三步:配置端口回源规则(消除端口号,核心配置)

这是整个方案中最关键的一步。由于 ESA 节点默认使用 80/443 端口访问源站,而你的内网服务运行在自定义端口上(如 8080),必须配置回源规则让 ESA 通过正确的端口访问源站。

4.1 操作步骤

  1. 进入站点 → “规则” → “回源规则” → “新增规则”。
  2. 填写规则名称(如“内网服务回源”)。
  3. 传入请求匹配条件
    • 选择“自定义规则”
    • 主机名:等于你的加速域名(如 nas.yourdomain.com
  4. 回源配置
    • 回源协议:选择“跟随客户端”或根据服务协议选择 HTTP/HTTPS
    • 端口:填写内网服务的实际端口号(如 8080)
  5. 点击确定保存,确保规则状态显示为绿色(已生效)。

4.2 关键说明

  • 系统默认:ESA 默认使用 HTTP 端口 80 和 HTTPS 端口 443 访问源站。
  • 自定义端口:通过上述回源规则配置后,ESA 会使用你指定的端口号(如 8080)访问源站。
  • 效果:用户访问 https://nas.yourdomain.com 时,ESA 自动将请求转发到 origin.yourdomain.com:8080,用户无需在 URL 中加端口号。
  • 多条规则:如有多个应用运行在不同端口(如 NAS 的 5000、Web 服务的 8080),可以为每个应用分别创建回源规则,通过不同的主机记录进行区分。

五、第四步:HTTPS 证书配置

5.1 证书类型选择

ESA 支持两种证书模式:

  • 免费证书(Let's Encrypt / Digicert):系统自动签发并自动续期,适合个人网站和博客,推荐使用。
  • 自定义上传证书:可上传企业自有证书,满足品牌化 SSL 展示及合规需求,需手动管理有效期。

5.2 申请免费证书

  1. 进入站点 → “SSL/TLS” → “边缘证书”。
  2. 点击“申请免费证书”。
  3. 选择证书颁发机构(推荐 Let's Encrypt,支持泛域名)。
  4. 输入证书域名:
    • 单域名:nas.yourdomain.com
    • 泛域名:*.yourdomain.com(可覆盖所有子域名,建议使用,一个证书解决所有子域名 HTTPS 需求)
  5. 点击确定,等待自动签发(通常 1-2 分钟),状态显示“正常”即成功。

5.3 可选增强配置

在 SSL/TLS 设置中,建议开启以下功能:

  • 强制 HTTPS:将所有 HTTP 请求自动 301 重定向到 HTTPS,提升安全性。
  • OCSP Stapling:缓存证书状态信息,减少 SSL 握手时间。
  • HTTP/2 或 HTTP/3:在“速度优化”中开启,提升传输效率。
  • HSTS:告知浏览器只能通过 HTTPS 访问,防止协议降级攻击。

六、第五步:高级优化配置

6.1 速度优化

进入站点 → “速度和网络” → “速度优化”,可配置:

  • 协议优化:开启 HTTP/2 和 HTTP/3(QUIC),弱网环境下效果显著。
  • 资源压缩:开启 Gzip 和 Brotli 压缩,减少传输体积。
  • 图像转换(如适用):对源站图片进行格式转换、压缩等处理,减少回源流量。

6.2 网络优化

进入站点 → “速度和网络” → “网络优化”,可配置:

  • IPv6 访问:开启后支持 IPv4/IPv6 双栈访问,兼容多网络环境。
  • WebSocket:如应用需要 WebSocket 长连接,可在此开启。
  • gRPC 连接:如使用 gRPC 协议,可开启加速。

6.3 缓存策略配置

进入站点 → “缓存”,可配置:

  • 静态资源(图片、CSS、JS 等)设置较长的缓存时间(如 7 天)。
  • 动态页面设置较短缓存或不缓存。

七、第六步:效果验证

7.1 基础验证

  1. 在浏览器中访问 https://nas.yourdomain.com(无需加端口号)。
  2. 检查是否正常打开内网服务页面。
  3. 查看浏览器地址栏,确认 HTTPS 证书状态正常(显示安全锁图标)。

7.2 高级验证

  • 多地测速:使用 ITDog 等工具进行多地 TC Ping 和 HTTP 测试,确认加速效果。
  • 回源追踪:在源站服务器日志中查看访问来源 IP,应显示为 ESA 节点 IP 而非客户端真实 IP。
  • CNAME 生效检查:使用 dig nas.yourdomain.com 确认解析指向 ESA 提供的 CNAME 地址。

八、故障排查指南

现象 可能原因 解决方案
访问 ESA 域名无法打开 DDNS 未生效 / 端口转发未配置 确认 origin.yourdomain.com:端口 可直接访问;检查路由器端口转发配置
访问出现 502/504 错误 回源端口配置错误 / 源站不可达 检查回源规则中的端口号是否与内网服务端口一致;确认源站服务正常运行
证书状态显示异常 域名验证未完成 / 证书申请失败 确认域名所有权 TXT 记录已正确添加;重新申请免费证书
CNAME 未生效 DNS 解析未同步 等待 DNS 生效(通常 5-10 分钟);检查云解析 DNS 中的 CNAME 记录是否正确
IPv6 环境下无法访问 IPv6 功能未开启 在“网络优化”中开启 IPv6 访问

九、安全建议

  1. 隐藏真实 IP:ESA 代理模式下,用户始终访问 ESA 边缘节点 IP,源站真实 IP 不会暴露。
  2. 源站访问控制:建议在路由器或内网服务器防火墙中配置策略,仅允许 ESA 节点 IP 访问源站服务端口,防止源站被直接攻击。
  3. HTTPS 全站加密:开启强制 HTTPS,确保数据传输安全。
  4. AccessKey 安全:DDNS 配置中使用的 AccessKey 建议在 RAM 控制台中创建子账号,并仅授予最小必要权限(AliyunESAFullAccess),避免使用主账号 AccessKey。
  5. WAF 防护:如使用付费版 ESA,建议开启 WAF 功能,配置基础防护规则,防范常见 Web 攻击。
© 本文著作权归作者所有,未经许可不得转载使用。