起因

前几天折腾NextCloud时遇到NAT环回无法正常使用的问题,想着重启一下路由,结果重启后公网就寄了,于是紧急将我的所有服务迁移至IPV6。

使用公网IPV6的两种方式

全设备公网v6

众所周知,v6地址可以做到全设备公网ip,在我之前的关于Openwrt里的ipv6设置这篇文章中曾提到过如何在OpenWrt里设置内网全设备暴露v6地址。但是,我也仅仅是提了一嘴,并没有真正使用,全暴露公网…脑子没啥大问题应该都不至于蠢到这种地步。

如果你往下看,看到华硕路由那个指定地址和端口暴露的功能,也许会觉得这个不错。确实,有一定的安全性,但不多,因为不能映射高位端口,常用端口很容易被扫。再者有二,一是op本身貌似没有这个功能,还要敲命令;二是每个设备都要做DDNS,虽然有ddns-go这个项目,但每台设备单独配置一遍也有够麻烦,当然,你可以在op上使用sh脚本通过mac地址区分来分别给每台设备做DDNS,但前提是你会写,我当时情况比较急,没时间去怼GPT。

通过NAT64转发公网

这里直接使用OpenWrt里的Lucky大吉插件,在端口转发选项卡里添加转发规则,使用简易模式即可,根据你的需求勾选tcp6udp6,端口自行设置,目标地址写你内网设备的v4地址即可。这些和op里的端口转发使用方法基本相同,是相对来说安全易用的方法,DDNS也只需要做软路由自身的。

不过这个插件中,并不能支持NAT环回,不知道是作者没做还是NAT64本身不支持。这句话是针对之前的blogTruenas应用之——NextCloud折腾日记说的,有兴趣可以看一下,没兴趣可以忽略这句话,不影响正常使用。

Cloudflare DDNSv6

v6的DDNS与v4没什么区别,你需要先知道怎么做v4的,参考在OpenWrt里设置Cloudflare的DDNS

v6只需要在IP地址版本处勾选IPV6,并在cf里为查询主机名添加一个任意的AAAA记录即可。在高级设置中,需要把IP地址来源改为接口,并在下方接口处选择pppow-wan,这样才能正确读取到op的v6地址。