通过Cloudflare域名解析到本地电脑上搭建的网站

laoluo
laoluo
laoluo
管理员
205
文章
0
粉丝
教程评论25阅读模式

⚠️不能直接把 A 记录填内网 IP (192.168/10/172),公网 DNS 无法路由内网地址。有两套主流方案:

  1. Cloudflare Tunnel(推荐,无公网 IP、不用端口映射):绝大多数家用宽带首选,免费,不需要光猫 / 路由器做端口转发,不会暴露家里公网 IP。
  2. DDNS+A 记录端口映射:需要运营商给公网 IP,光猫改桥接,路由器端口转发,适合直连场景 (SSH/RDP)。

通过Cloudflare域名解析到本地电脑上搭建的网站

方案一:Cloudflare Tunnel(cloudflared)✅推荐

原理:本地电脑运行cloudflared客户端,向外主动建立加密隧道连接 Cloudflare 节点;域名 CNAME 指向隧道地址,外网访问域名流量经隧道转发到你电脑本地服务。
链路:外网用户 → Cloudflare边缘 → Tunnel隧道 → cloudflared → 本机服务

1. 下载 cloudflared

  • Windows:winget install cloudflare.cloudflared,或者下载 MSI 安装包
  • Linux:wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb
  • Mac:brew install cloudflare/cloudflare/cloudflared

2. 登录授权

cloudflared tunnel login

 

浏览器弹出页面,授权你的域名,生成cert.pem凭证文件。

3. 创建隧道(名字自定义,示例mylocal

cloudflared tunnel create mylocal

 

执行后输出 Tunnel UUID,同时生成UUID.json凭证文件,保存好,不要删除。

4. 绑定域名到隧道(自动生成 DNS CNAME 记录)

假设子域名shturl.cc/ixOldBW3,执行:

cloudflared tunnel route dns mylocal shturl.cc/ixOldBW3

执行成功后,Cloudflare DNS 页面自动生成一条CNAME记录指向xxx.cfargotunnel.com不要手动改成 A 记录

5. 编写配置文件 config.yml

tunnel: mylocal
credentials-file: /path/to/你的UUID.json  #Windows写完整绝对路径 D:\cloudflared\uuid.json

ingress:
  - hostname: shturl.cc/ixOldBW3
    service: http://127.0.0.1:3000  #你电脑本地运行的服务地址端口
  - service: http_status:404

 

6. 启动隧道

cloudflared tunnel --config config.yml run

访问shturl.cc/ixOldBW3就可以访问本机127.0.0.1:3000的服务。

7. 设置开机自启(可选)

Windows/Linux 可注册系统服务,后台常驻运行,电脑开机自动连接隧道。

💡小提示:

  • 隧道默认自动 HTTPS,不需要自己配置 SSL 证书;
  • 可以在 Zero Trust 后台配置访问策略,限制访问人邮箱,防止公开访问;
  • 不适合 TCP 直连 (SSH/RDP),网页 HTTP/HTTPS 服务完美适配。

方案二:DDNS + A 记录 + 路由器端口映射(需要公网 IP)

前提:宽带必须拿到IPv4 公网 IP,光猫改成桥接模式,路由器拨号。

  1. 在 Cloudflare DNS 添加 A 记录,代理状态设置为DNS only(云朵变灰)
  2. 使用 DDNS 脚本定时获取本机公网 IP,调用 Cloudflare API 自动更新 A 记录 IP 地址。
  3. 路由器配置端口转发:外网端口转发到本机内网 IP + 端口。
  4. 注意:国内运营商封禁 80/443 端口,公网不能直接用 80、443。

缺点:家庭公网 IP 会变动,需要 DDNS 脚本;暴露家庭公网 IP,有安全风险;很多运营商不给公网 IP,此方案不可用。

常见踩坑

  1. ❌手动填 A 记录写 192.168.x.x:公网无法访问,互联网路由不到内网地址。
  2. ❌DNS 记录手动删除隧道生成的 CNAME,会直接 502。
  3. 502 Bad Gateway:本地服务没有启动;config.yml 里面 service 地址写错;cloudflared 没有正常运行。
  4. 域名代理小云朵:Tunnel 场景保持代理开启(云朵橙色)。
  5. 内网访问:本机局域网设备直接访问192.168.x.x:端口,不走 cloudflare 隧道。

两种方案对比

Cloudflare Tunnel DDNS + 端口映射
需要公网 IP ❌不需要 ✅必须要
路由器设置 无需任何配置 需要端口转发、光猫桥接
暴露家庭 IP 不暴露 暴露公网 IP
适用服务 HTTP/HTTPS 网页服务 TCP 全端口 (SSH/RDP 等)
运营商 80/443 封锁 不受影响 会被封禁

 
laoluo
  • 本文由 laoluo 发表于2026年8月10日 08:59:34
  • 转载请务必保留本文链接:https://www.mydata-api.com/tutorials/477.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证