问题背景

使用ddns-go配置了IPv6 DDNS,通过域名远程访问家中的alist服务(端口5244)。某天突然发现无法访问,ddns-go日志显示IPv6地址频繁变化。

问题分析

1. IPv6地址为何频繁变化?

原因:Windows系统默认启用IPv6隐私扩展(Privacy Extensions)。

机制:

  • IPv6前缀固定(运营商分配) → 2409:8a00:79a6:b7f0
  • IPv6后缀定期随机变化 → 防止长期追踪
  • ddns-go检测到变化 → 自动更新DNS

类比:小区门牌号(前缀)不变,但房间号(后缀)定期更换。

2. 为何更新后仍无法访问?

排查过程:

  1. 本地访问 → 正常 ✓
  2. 手机流量访问 → 正常 ✓
  3. 公司网络访问 → 返回503错误 ✗

定位:公司网络限制了5244端口。

验证方法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 测试IPv6连通性
  
ping -6 ddns.1570150.xyz
  

  
# 测试Cloudflare线路
  
ping 1.1.1.1
  

结果:网络层通,HTTP层被拦截。

解决方案

方案对比

方案速度配置难度稳定性
改443端口+证书最快中等
Cloudflare Tunnel略慢简单
VPN复杂

选择Cloudflare Tunnel的原因:

  • 公司到CF延迟<15ms,速度损失可接受
  • 配置简单,15分钟搞定
  • 不需要在路由器开端口,更安全

配置步骤

1. 禁用IPv6隐私扩展

目的:固定IPv6后缀,减少地址变化。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 管理员cmd执行
  
netsh interface ipv6 set privacy state=disabled
  
netsh interface ipv6 set global randomizeidentifiers=disabled
  

  
# 重启网卡或重启电脑
  

验证:

1
2
3
4
ipconfig
  
# 应该只有固定地址,没有"临时 IPv6 地址"字样
  

2. 创建Cloudflare Tunnel

登录CF后台:

Zero Trust → Access → Networks → Tunnels → Create a tunnel
  

配置流程:

  1. 选择 “Cloudflared” 类型
  2. 命名tunnel (如: home-alist)
  3. 下载Windows客户端
  4. 配置应用程序:
    • 名称: DeerAlist
    • 内部地址: localhost
    • 协议: HTTP
    • 端口: 5244
  5. 配置域名:
    • 域名: 1570150.xyz
    • 子域: alist

3. 安装Cloudflared客户端

下载并安装:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 下载 cloudflared-windows-amd64.exe
  
# 重命名为 cloudflared.exe
  
# 放到任意目录,如 C:\a_soft\
  

  
# 管理员cmd执行(替换为实际token)
  
cloudflared.exe service install eyJh...token...
  

  
# 启动服务
  
cloudflared.exe service start
  

验证服务状态:

Win+R → services.msc → 找到 Cloudflared → 确认"正在运行"
  

4. 测试访问

https://alist.1570150.xyz
  

核心原理

Cloudflare Tunnel工作流程

公司电脑 → https://alist.1570150.xyz:443
  
           ↓
  
        Cloudflare边缘节点
  
           ↓
  
        家中cloudflared客户端
  
           ↓
  
        localhost:5244 (alist)
  

关键点:

  1. 客户端主动连接CF → 无需路由器端口转发
  2. 公司看到的是443端口HTTPS → 不会被拦截
  3. CF负责证书管理 → 自动HTTPS加密

与直连IPv6的区别

直连方式:

公司 ←→ ddns.1570150.xyz:5244 ←→ 家中IPv6
  

优点:延迟低,速度快
缺点:非标准端口易被拦截

Tunnel方式:

公司 ←→ CF(443) ←→ 家中
  

优点:标准端口,不被拦截
缺点:多一跳,延迟略增

经验总结

  1. IPv6地址变化是正常的
    因为隐私扩展机制,后缀会定期更换。禁用后可固定,但会牺牲隐私性。

  2. 企业网络默认有安全策略
    非标准端口往往被拦截,即使没有人工配置,设备可能也有默认策略。

  3. Cloudflare Tunnel适合家用场景

    • 免费且稳定
    • 国内延迟可接受(<50ms)
    • 无需公网IP或端口转发
    • 自动HTTPS加密
  4. 排查问题要分层验证

    • 网络层: ping测试连通性
    • 传输层: telnet测试端口
    • 应用层: 浏览器测试HTTP响应

参考资料