借助DDNS Go 使用家宽IPV6套CDN 实现去端口和IPV4访问
前言
在本地有IPV6公网且防火墙关闭的情况下 家宽一般情况下都封禁80 443等一些特殊的端口
这种情况下就无法使用80 443建站了 只有你可以访问
既不想使用端口 也想单栈IPV4用户访问 有没有解决办法呢?
借助支持IPV6自定义端口回源的CDN/代理即可
你可以使用任意CDN 甚至Nginx 和内网穿透类似 需要一个转发服务 但这个转发服务可以是CDN
教程
在本地创建一个Web服务 任意都行 我这里以静态网页为例 使用1Panel的OpenResty
以81端口为例(只要不是被封禁的端口都行)
编辑配置文件 监听IPV6的81端口
listen 81 ;
listen [::]:81 ;
# [::]代表监听IPV6
配置好本地的Web服务后 我们需要考虑CDN的回源地址如何更新 家宽IPV6地址是有有效期的 每隔一段时间就会发生变更
这里 使用DDNS Go 将最新的IPV6地址解析到一个指定的域名
项目地址: jeessy2/ddns-go
可以直接在1Panel应用商店中安装 其他安装方式可以参考Github
在浏览器访问IP:9876的服务 这是DDNS Go的Web页面
配置用户名和密码
这里以Cloudflare为例 从Cloudflare 控制面板获取Token
(其他DNS服务商都可以在控制面板找到API密钥 授权 选项下方均有提示)
选择编辑区域DNS
选择所有区域
或选择一个域名
复制Token
粘贴在DDNS Go
如果你没有公网IPV4 将这个选项关闭
开启IPV6 选择一个有公网V6的网卡
输入一个域名 程序会自动将IPV6地址解析到这个域名
最后 点击保存
点击日志
查看是否解析成功
完成后 接下来就可以进行最后一步了 使用CDN或Nginx来对外提供服务
Nginx和其他CDN很简单 都支持自定义回源端口 直接使用域名+81端口即可
Cloudflare需要手动开启小黄云 然后点击保存
这样配置后 会发现依旧无法访问 因为Cloudflare会更具SSL状态 回源80和443端口 而不会回源我们设置的81端口 我们需要配置规则 来实现
侧边栏选择规则
然后在Origin Rules处点击创建规则
字段选择主机名
运算符选择等于
在右侧填入域名 需要和Web服务监听的域名一致
下滑 选择重写到
值填入81(替换为你实际的端口) 然后点击部署
配置完成后 尝试访问域名(访问不了可能是DNS未及时刷新的问题)
至此 就完成借助DDNS Go 使用家宽IPV6套CDN建站
需要注意 如果你使用的不是Cloudflare 而是其他CDN 需要考虑DNS缓存的问题 可能IPV6变更后 但CDN解析回源域名的IP还是旧值 导致回源失败
但使用Cloudflare就不需要考虑这个问题