Unraid实践——IPv6反向代理实现域名访问Docker应用

2023-03-11 17:08:48 22点赞 235收藏 21评论

前言

距离上一篇公网IPv4版本已经过去三年,而IPv6的教程也从前年拖更到现在,其实是因为一直在光猫拨号+二级路由的环境下,路由器内网的设备只能获取到内网IPv6地址,之前在Padavan上尝试用6relayd方式获取公网地址也不是很稳定。偶然发现了某位老哥的文章 OpenWrt二级路由器分配公网IPV6地址,解决了长久以来的困惑,原来二级路由开启中继模式让内网的设备获取公网IPv6并没有那么复杂,于是上周自己编译了一把OpenWrt,配置好路由器并让NAS获取到了IPv6地址,还在chatgpt的帮助下写了一个反向代理的程序,现在终于能舒舒服服地用IPv6了Unraid实践——IPv6反向代理实现域名访问Docker应用 。本文总结了个人使用IPv6的最佳实践,希望可以帮到大家。

目录

  • 开启IPv6

    • 光猫配置

    • 路由器配置 (以OpenWrt为例)

    • Unraid配置

  • 配置域名解析

    • 申请免费域名

    • DDNS-GO设置自动解析

  • 设置反向代理

    • Unraid修改网页端口

    • Docker部署反向代理应用

  • 移动网络访问

    • 手机APN打开IPv6

    • 使用域名访问应用

开启IPv6

光猫配置

出租屋使用的是某SDN网关,默认开启了IPv6,所以我这里没有额外配置。

动手能力强的朋友可以进入光猫后台修改IP协议,普通用户可以直接致电运营商远程开启。

有条件的还可以改成桥接模式,具体参考前一篇文章或其他教程。

路由器配置

理论上较新型号的路由器使用光猫桥接+路由器拨号,下级设备就可以自动获取公网IPv6地址了。

如果是光猫拨号+二级路由,需要开启中继模式:

完整步骤请参考 https://www.azimiao.com/8523.html

首先确认WAN6接口设置为DHCPv6客户端,然后将接口中的WAN和LAN都设置为静态地址;接口页面下方的IPv6 ULA 前缀部分需要清空

分别进入 网络-接口-LAN和WAN,点击下方的IPv6 设置,将可选项全部设置为中继模式

路由器-接口-LAN路由器-接口-LAN

路由器-接口-WAN-DHCP服务器路由器-接口-WAN-DHCP服务器

如何判断成功获取到IPv6地址

Windows下进入设置-网络和Internet-属性,可以看到IPv6地址处 24 开头的地址即表示配置成功

或者直接打开 test-ipv6.com 测试页面查看

IPv6测试IPv6测试

防火墙配置

本地获取到公网地址后,可能还不能直接从外网访问,需要进行防火墙配置

打开网络-防火墙-基本设置,将 转发 处更改为 接受 即可

路由器-防火墙设置路由器-防火墙设置

Unraid配置

首先兑现上篇文章的承诺,工作后入正了Unraid实践——IPv6反向代理实现域名访问Docker应用

正版软件受害者正版软件受害者

Settings进去Docker和VM Manager中将Enable设置为No,进入 Settings->Network Settings,将 Network protocol 设置为 IPv4 + IPv6

Unraid-网络设置Unraid-网络设置

其余的 assignment 部分设置为 Automatic,会自动分配IP地址

当IPv6分配完成后,可以看到 IPv6 address 变成了 24 开头的地址

(后文中参考配置的IPv4地址默认使用192.168.123.181,需要替换成你自己的地址)

至此NAS已经成功获取IPv6公网地址,重新Enable Docker和VM后,就可以直接在浏览器中输入 [IPv6地址]:端口 访问NAS中的应用了

IPv6地址访问应用IPv6地址访问应用

配置域名解析

申请免费域名

这部分可以参考前一篇文章,动态域名解析需要到DNS服务商处获取API ID和Key,可以参考不同服务商的官方文档

DDNS-GO设置自动解析

Unraid实践——IPv6反向代理实现域名访问Docker应用 这次我们将动态域名解析(DDNS)服务直接安装在了Unraid,省去一些路由器的配置

Docker中添加 jeessy/ddns-go 的配置如图

DDNS-GO 容器设置DDNS-GO 容器设置

浏览器输入 192.168.123.181:9876 进入ddns-go后台

选择DNS服务商并填入ID和Token

下方找到IPv6勾选启用,选择通过网卡获取,Domain框中输入域名,这里依旧使用泛域名 *.xxx.ml

DDNS-GO 后台设置DDNS-GO 后台设置

保存配置后等待日志显示新增解析成功

新增域名解析成功新增域名解析成功

现在已经可以通过 x.xxx.ml:端口号 访问NAS上的应用了

设置反向代理

Unraid修改网页端口

与前一篇文章不同的是,域名直接解析到了NAS的IPv6地址,而不是路由器的地址,因此需要修改Unraid默认的网页端口,将80和443端口预留给反向代理程序

进去Settings ->Management Access,将HTTP和HTTPS port更改成其他空闲端口,Apply以后,内网访问Unraid后台需要使用新设置的端口号,例如 192.168.123.181:1880

修改Unraid网页端口修改Unraid网页端口

Docker部署反向代理应用

这次反向代理没有使用Nginx Proxy Manager,在ChatGPT帮助下用go语言写了一个反向代理的小应用,使用toml文件配置代理和证书目录,支持https,还可以自动申请ssl证书,免去了手动配置证书的麻烦

Github代码仓库:ricardomlee/repro

部署也很简单,首先准备一个配置文件,命名为repro.toml,内容参考如下

[proxies]
"jelly.example.ml" = "http://192.168.123.181:8096"

[cert]
dir = "/config/cert"

将配置文件上传到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, 然后返回并确认保存

APN开启IPv6APN开启IPv6

重启一下流量开关后,进入我的设备-全部参数-状态信息,查看IP地址部分成功获取到 24 开头的公网IPv6地址


手机查看IPv6地址手机查看IPv6地址

使用域名访问应用

浏览器中输入代理的域名,访问成功Unraid实践——IPv6反向代理实现域名访问Docker应用

域名访问应用域名访问应用

最后

Unraid实践——IPv6反向代理实现域名访问Docker应用 鸽了好久的内容终于补完了,这次没有那么多啰嗦的废话,也是因为从学生成长为了一名入门级码农。希望这篇文章可以帮助还没有用上IPv6的小伙伴,有任何问题欢迎在评论区讨论Unraid实践——IPv6反向代理实现域名访问Docker应用

链接

[1] Unraid尝鲜——设置反向代理实现泛域名访问Docker应用_NAS存储_什么值得买 (smzdm.com)

[2] OpenWrt二级路由器分配公网IPV6地址 | 梓喵出没 (azimiao.com)


作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1899元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2485.01元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1779元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3499元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2679元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2799元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5899元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1979元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

2499元起

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

ASUS 华硕 AS6702T 4盘位NAS存储 黑色(Core2 Quad Q8300、4GB)

4279元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3279元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1329元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起

sgwbox 拾光坞 N3 星光版V1(瑞芯微RK3566,2G,支持docker)

sgwbox 拾光坞 N3 星光版V1(瑞芯微RK3566,2G,支持docker)

385.78元起
21评论

  • 精彩
  • 最新
  • 如果你们为了ipv6找各种大神的op版本,建议试一下op官方最新原版,有时候解决ipv6问题会有奇效。 [得意]

    校验提示文案

    提交
    有时候信息太多也不是好事 [喷血]

    校验提示文案

    提交
    收起所有回复
  • 不喜欢改unraid网页端口的可以在路由器上用lucky转发,内网nginx就不用80端口了

    校验提示文案

    提交
    看了一下lucky,一个工具集合了要到的所有功能,厉害了 [赞一个]

    校验提示文案

    提交
    我去,这个厉害了

    校验提示文案

    提交
    收起所有回复
  • 能简单化绝不复杂化,光猫改桥接多省事

    校验提示文案

    提交
    如果是自己的房子肯定要开桥接的 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 一直报UNRAID dhcpcd[872]: br0: part of a Router Advertisement expired,有没有解决办法

    校验提示文案

    提交
    如果是openwrt二级路由,建议看下完整教程去看看,我这里漏了修改子网前缀和wan6设置dhcpv6部分 [狂汗]

    校验提示文案

    提交
    不,跟你这个文章没关系 [狂汗] ,已知是RA问题,如果装一个openwrt虚拟机,在没关掉ipv6的情况下,把这虚拟机删了就会出现,解决的办法也不是没有,就是重启,但我这是aio,再加硬盘线有点问题,每重启一次,crc错误计数就会增加,看大佬unraid玩的溜,问问有没有不重启的解决办法 [脸红]

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • ipv6 80/443端口竟然没被封?

    校验提示文案

    提交
  • ipv6我每次访问,要不断刷新好几次,或者ping下才能通,应该是dns解析慢了,有大佬知道不

    校验提示文案

    提交
    遇到同样的问题

    校验提示文案

    提交
    收起所有回复
  • 我看不懂,但我大受震撼。 [喜极而泣]

    校验提示文案

    提交
  • repro容器更新后需要修改目录配置,unraid container repro设置中将Container Path: 设置为 /app/config,toml中 "/config/cert" 需要更改为 "config/cert",然后重新部署container

    校验提示文案

    提交
  • 这样反代以后速度怎么样?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
235
扫一下,分享更方便,购买更轻松