Published on

ipv6服务通过cloudflare可ipv4访问

Authors

前置条件

  • ipv6公网
  • 域名托管在cloudflare

配置ddns

可以使用我的修改的脚本

https://github.com/JcobCN/cloudflare-ddns-script/tree/master

cloudlfare配置

配置AAAA记录,记得把这个代理打开。

HTTP ports supported by Cloudflare

80 8080 8880 2052 2082 2086 2095

HTTPS ports supported by Cloudflare

443 2053 2083 2087 2096 8443

代理只支持上面的端口,80和443被运营商封掉了,不用想。用其他的,这里我们使用https的端口,配合cloudflare自动边缘ssl,我们的http服务自动就有证书了。 下面是配置: 这里关闭
把这里的强制https打开,会自动启用ssl边缘证书,我们的http服务配置到上述的https端口,就能自动变成https了。

上面这种做法会导致有些cloudflare的服务301。

把ssl/tls那设置成灵活,然后把【始终使用https】关掉,使用http协议来访问服务。如果需要使用https服务,就用nginx配置个自签证书。

防火墙

需要在路由器防火墙转发对应的https端口。

# 查看iptable规则
ip6tables -L -v -n
# 在路由器开启转发需要的端口,我这是2083
ip6tables -I FORWARD -p tcp --dport 2083 -j ACCEPT

效果

用docker起的一个nginx服务,可以看到已经加上https了。

我部署了个alist,测试了下,4G下载速度有1.5MB每秒,理论上手机都有ipv6公网,可以不用套cloudflare代理,速度更快。 可以设置多一个AAAA记录,不开代理,这样用手机流量时可以把速度拉满。