距离上一篇公网IPv4版本已经过去三年,而IPv6的教程也从前年拖更到现在,其实是因为一直在光猫拨号+二级路由的环境下,路由器内网的设备只能获取到内网IPv6地址,之前在Padavan上尝试用6relayd方式获取公网地址也不是很稳定。偶然发现了某位老哥的文章 OpenWrt二级路由器分配公网IPV6地址,解决了长久以来的困惑,原来二级路由开启中继模式让内网的设备获取公网IPv6并没有那么复杂,于是上周自己编译了一把OpenWrt,配置好路由器并让NAS获取到了IPv6地址,还在chatgpt的帮助下写了一个反向代理的程序,现在终于能舒舒服服地用IPv6了 目录
开启IPv6光猫配置出租屋使用的是某SDN网关,默认开启了IPv6,所以我这里没有额外配置。 动手能力强的朋友可以进入光猫后台修改IP协议,普通用户可以直接致电运营商远程开启。 有条件的还可以改成桥接模式,具体参考前一篇文章或其他教程。 路由器配置理论上较新型号的路由器使用光猫桥接+路由器拨号,下级设备就可以自动获取公网IPv6地址了。 如果是光猫拨号+二级路由,需要开启中继模式: 完整步骤请参考 https://www.azimiao.com/8523.html 首先确认WAN6接口设置为DHCPv6客户端,然后将接口中的WAN和LAN都设置为静态地址;接口页面下方的IPv6 ULA 前缀部分需要清空 分别进入 网络-接口-LAN和WAN,点击下方的IPv6 设置,将可选项全部设置为中继模式
如何判断成功获取到IPv6地址 Windows下进入设置-网络和Internet-属性,可以看到IPv6地址处 24 开头的地址即表示配置成功 或者直接打开 test-ipv6.com 测试页面查看
防火墙配置 本地获取到公网地址后,可能还不能直接从外网访问,需要进行防火墙配置 打开网络-防火墙-基本设置,将 转发 处更改为 接受 即可
Unraid配置首先兑现上篇文章的承诺,工作后入正了
Settings进去Docker和VM Manager中将Enable设置为No,进入 Settings->Network Settings,将 Network protocol 设置为 IPv4 + IPv6
其余的 assignment 部分设置为 Automatic,会自动分配IP地址 当IPv6分配完成后,可以看到 IPv6 address 变成了 24 开头的地址 (后文中参考配置的IPv4地址默认使用192.168.123.181,需要替换成你自己的地址) 至此NAS已经成功获取IPv6公网地址,重新Enable Docker和VM后,就可以直接在浏览器中输入 [IPv6地址]:端口 访问NAS中的应用了
配置域名解析申请免费域名这部分可以参考前一篇文章,动态域名解析需要到DNS服务商处获取API ID和Key,可以参考不同服务商的官方文档 DDNS-GO设置自动解析
Docker中添加 jeessy/ddns-go 的配置如图
浏览器输入 192.168.123.181:9876 进入ddns-go后台 选择DNS服务商并填入ID和Token 下方找到IPv6勾选启用,选择通过网卡获取,Domain框中输入域名,这里依旧使用泛域名 *.xxx.ml
保存配置后等待日志显示新增解析成功
现在已经可以通过 x.xxx.ml:端口号 访问NAS上的应用了 设置反向代理Unraid修改网页端口与前一篇文章不同的是,域名直接解析到了NAS的IPv6地址,而不是路由器的地址,因此需要修改Unraid默认的网页端口,将80和443端口预留给反向代理程序 进去Settings ->Management Access,将HTTP和HTTPS port更改成其他空闲端口,Apply以后,内网访问Unraid后台需要使用新设置的端口号,例如 192.168.123.181:1880
Docker部署反向代理应用这次反向代理没有使用Nginx Proxy Manager,在ChatGPT帮助下用go语言写了一个反向代理的小应用,使用toml文件配置代理和证书目录,支持https,还可以自动申请ssl证书,免去了手动配置证书的麻烦 Github代码仓库:ricardomlee/repro 部署也很简单,首先准备一个配置文件,命名为repro.toml,内容参考如下
将配置文件上传到appdata目录,例如新建一个/mnt/user/appdata/repro目录,放入repro.toml文件 Docker中添加 ricardomlee/repro 的配置如图,将刚刚创建的目录映射到容器里的 /config 目录,80和443端口分别映射到容器内的80和443端口
部署完成后,可以在浏览器输入代理的域名例如 jelly.example.ml 直接访问Unraid应用 第一次访问应用需要申请SSL证书,因此会加载等待一段时间,等证书申请完成后面访问就很快了 当然,除了代理Unraid上的应用,还可以代理内网中任意设备上的应用,例如要添加路由器管理页面的代理,只需要修改/mnt/user/appdata/repro/repro.toml文件,在 [proxies] 下方新增一行 "newifi.example.ml" = "http://192.168.123.1:80" 然后在Unraid Docker页面重启repro即可 移动网络访问APN开启IPv6以MIUI13为例,打开设置-双卡与移动网络,选择上网卡设置 接入点名称(APN),进入默认APN的设置页面,找到APN协议,修改成 IPv4/IPv6, 然后返回并确认保存
重启一下流量开关后,进入我的设备-全部参数-状态信息,查看IP地址部分成功获取到 24 开头的公网IPv6地址
使用域名访问应用 浏览器中输入代理的域名,访问成功
最后
链接[1] Unraid尝鲜——设置反向代理实现泛域名访问Docker应用_NAS存储_什么值得买 (smzdm.com) [2] OpenWrt二级路由器分配公网IPV6地址 | 梓喵出没 (azimiao.com) |