IPv6 的服务器通过 Cloudflare Tunnel 接入公网的详细步骤

IPv6 的服务器通过 Cloudflare Tunnel 接入公网的详细步骤
小妖以下是将仅支持 IPv6 的服务器通过 Cloudflare Tunnel 接入公网的详细步骤,结合知识库中的信息整理而成:
部署前提条件
服务器具备公网 IPv6 地址
- 确认服务器已获得公网 IPv6 地址(可通过https://ipv6.seeip.org/ 验证)。
- 确保服务器防火墙允许 IPv6 流量。
Cloudflare 帐号与域名
- 已在 Cloudflare 注册并绑定需要解析的域名。
步骤1:配置 Cloudflare 基础信息
1.1 将域名托管到 Cloudflare
- 登录 Cloudflare 控制台,点击Add a Site,输入域名并选择Free plan。
- 完成域名的 DNS 解析配置(Cloudflare 会自动生成新的 NameServers)。
- 在域名注册商后台将 NameServers 更改为 Cloudflare 提供的列表。
1.2 创建 Cloudflare Zero Trust
- 进入Zero Trust页面,选择Create a Zero Trust network。
- 选择Free plan(免费计划),无需绑定信用卡(可跳过)。
- 完成 Zero Trust 网络的创建。
步骤2:创建并配置 Cloudflare Tunnel
2.1 创建 Tunnel
- 在 Zero Trust 的Tunnels页面,点击Add Tunnel。
- 输入 Tunnel 名称(如ipv6-service),点击Save。
- 复制生成的Tunnel ID和Token(后续配置需要)。
2.2 下载并安装 Cloudflared 客户端
方式1:使用 Docker(推荐)
1 | # 创建配置目录 |
方式2:手动安装(非Docker)
1 | # 下载对应架构的 Cloudflared(以 Linux x64 为例) |
步骤3:配置 Tunnel 的路由规则
3.1 创建配置文件config.yml
1 | tunnel: <TUNNEL_ID> # 替换为你的 Tunnel ID |
3.2 配置 DNS 记录
在 Cloudflare 的DNS页面,添加一条CNAME 记录:
- 名称:service(对应子域名service.yourdomain.com)。
- 类型:CNAME。
- 内容:
. .cloudflareaccess.com(如ipv6-service.tunnel.dog.cloudflareaccess.com)。 - 代理状态:开启(小黄云)。
!CNAME记录示例https://example.com/cname-record.png
步骤4:启动 Cloudflared 并验证
4.1 启动服务
1 | # Docker 方式 |
4.2 验证 Tunnel 状态
- 访问https://
. .cloudflareaccess.com(替换为实际地址),确保能访问到内网服务。 - 通过域名访问:https://service.yourdomain.com(Cloudflare 会自动处理 HTTPS 证书)。
IPv6 特别配置
1. 确保服务监听 IPv6
确保你的服务(如 Nginx、LobeChat)监听 IPv6 地址:: 或特定 IPv6 地址:
1
2
3
4
5
6
7# Nginx 示例
server {
listen [::]:80;
listen [::]:443 ssl;
server_name service.yourdomain.com;
# ...其他配置...
}
2. 防火墙设置
开放服务器防火墙的 IPv6 端口(如 HTTP/80、HTTPS/443):
1
2sudo ufw allow from any to any proto tcp port 80
sudo ufw allow from any to any proto tcp port 443
常见问题解决
Q1: 访问提示“522 Connection Timed Out”
原因:服务未正确监听 IPv6 或防火墙阻断。
解决:
- 检查服务是否监听 IPv6 地址(如netstat -tuln | grep :::80)。
- 确保防火墙允许 IPv6 流量。
Q2: 无法通过域名访问
原因:DNS 记录未正确配置或缓存未刷新。
解决:
- 确认 CNAME 记录的Proxy Status为开启(小黄云)。
- 清除 DNS 缓存(如sudo systemd-resolve –flush-caches)。
Q3: Cloudflared 无法启动
原因:配置文件路径或权限错误。
解决:
- 确保config.yml 路径正确且可读。
- 检查credentials-file 是否指向正确的 JSON 凭据文件。
进阶配置
1. 添加访问验证(可选)
在 Cloudflare Zero Trust 中配置Application,要求用户通过邮箱或密码验证后访问。
- 参考知识库[5]的步骤,设置验证策略。
2. 动态 IPv6 地址更新(可选)
如果服务器的 IPv6 地址动态变化,需配置DDNS:
- 使用 Cloudflare API 脚本自动更新 Tunnel 的 IPv6 地址(参考知识库[1]的动态 DNS 脚本)。
总结
通过以上步骤,你可以将仅支持 IPv6 的服务器通过 Cloudflare Tunnel 安全地暴露到公网,实现以下优势:
- 无需公网 IPv4 地址:完全依赖 IPv6 进行穿透。
- 自动 HTTPS:Cloudflare 自动签发 SSL 证书。
- 高安全性:无需开放服务器防火墙端口,流量加密传输。
评论
匿名评论隐私政策











