外网 IPv4 访问家用纯 IPv6 服务(免端口+全 HTTPS 方案)

1. 核心需求与背景

  • 环境:家庭宽带拥有公网 IPv6 地址,但外部网络(如公司、某些移动网络)仅支持 IPv4。
  • 目标:通过自定义域名,不带端口号(如 :8443),且全过程 HTTPS 加密访问家中的 OpenWrt 或其他服务。
  • 工具链:Cloudflare (CDN/回源规则) + Lucky (反向代理/动态域名) + IPv6 宽带。

2. 核心架构图

  1. 客户端:发起 https://abc.yourdomain_b.com 请求(默认 443 端口)。
  2. Cloudflare:接收 IPv4 请求,将其转换为 IPv6,并将 443 端口重写为 8443。
  3. **Lucky (源站)**:接收 8443 端口流量,添加反代记录并转发给局域网服务。

3. 分步操作指南

第一步:Cloudflare 基础配置(实现 IPv4 转 IPv6)

  • 添加记录:新建一条 CNAME 记录,指向你家里的公网 IPv6子域名https://abc.yourdomain_a.com
  • 开启代理:务必开启 **“橙色小云朵” (Proxy)**,这是实现协议转换和隐藏 IP 的前提。
  • SSL 模式:在 SSL/TLS -> 概述 中,选择 “完全 (Full)”

第二步:配置 Origin Rules(实现“免端口”访问)

为了不输入 :8443,让 Cloudflare 在后台完成端口映射:

  1. 进入 规则 (Rules) ->概述-> Origin Rules
  2. 匹配条件:主机名 (Hostname) 等于 abc.yourdomain.com
  3. 多条子域名:用or连接于后面。
  4. 操作:目的端口 (Destination Port) 重写到 8443

第三步:Lucky (大吉) 关键设置

在 Lucky 的 Web服务 规则中进行如下设置,确保能顺利进入服务界面:

  1. 监听端口:设置为 8443(并确保证书已配置)。
  2. 域名列表:添加子域名 abc.yourdomain_b.com并指向内网地址。
  3. 忽略后端TLS证书验证:勾选为 “是”