之前我有两篇文章写了如何通过Zerotier或者Tailscale实现无公网的情况下进行内网穿透,实现随时随地访问内网群晖服务器。https://post.smzdm.com/p/ad9x4kgz/
https://post.smzdm.com/p/agq6wr87/
其实无公网的说法并不全面,我们目前宽带运营商只是不再或者轻易提供IPV4的公网地址,因为国家大力推广IPV6,其实每一个联网设备都是有IPV6的公网地址的,只不过很多路由设备默认不开启或者限制端口,导致我们大部分用户无法使用IPV6的公网地址。
其实之前很早就想打通我家宽带的IPV6,但想要使用IPV6,必然要动家中的主路由器,国庆放假闲来无事,我开始了折腾,一下午的时间,总算实现了目标。
先说实现IPV6公网穿透的前提:
一、家里的路由器固件必须是安装了OPWRT或者老毛子padavan的路由器
我使用的就是安装老毛子padavan固件的红米AC2100路由器,家里之前的主路由一直是使用官方固件的红米AX6,虽然官方貌似也提供了IPV6的功能,其实是阉割版的,根本无法使用IPV6的公网地址,所以家里路由仍旧是小米路由器官方固件的,这篇文章可以先保存了。
二、家中光猫必须改成桥接模式,由主路由拨号上网
这个必须要联系安装宽带的师傅,要获得超级管理员密码,或者直接让运营商来改设置,将光猫改成桥接,同时你最好能要到光猫超级用户的账户和密码,以及家里宽带的账号密码。我是直接报修,进而联系到负责安装维护光猫的师傅,跟他讲明自己的需求后,他直接将超级管理员的账号密码给我了,移动宽带的拨号密码也是可以在移动官方app获取修改的。这个准备工作一定要提前做好。
如果师傅没上门,直接告诉你光猫的超级管理员账号密码,你自己改桥接的话,可以下图我的设置。
仅供移动宽带用户参考
接下来详细写明路由器的设置,我是以padavan固件进行的设置,OPWRT以后有时间再出个教程。
①进入padavan管理页面,点击 外网WAN——外网设置,如图所示设置好拨号上网
②点击 IPv6协议,如图所示设置好IPv6.
③确认是否已经连接到IPv6网络
点击顶部的 网络地图——小圆球,查看外部网络状态,如果在IPv6地址LAN和WAN这两处看到2409开头的地址,说明已经连接上IPv6网络,2409开头的就是IPv6地址,电信好像是240e开头。这里要注意的是,最后的那个“/60”和“/64"可不是IPv6地址,后面填写地址的时候不要带上它。
④打开路由器防火墙的端口
这一步非常重要,其实小米路由器的官方固件就是因为不开放防火墙,无法打开端口,才导致我们无法使用官方固件设置IPv6.
使用FinallShell或者其他SSH工具连接上路由器,分别输入执行以下命令
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -A OUTPUT -p tcp --sport 80 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT
ip6tables -A OUTPUT -p tcp --sport 443 -j ACCEPT
这是打开访问路由器需要用到的80和443端口,但是一旦路由器重启,以上命令全失效,需要重新执行一遍,所以需要将以上命令设置到脚本里。
打开 参数设置——脚本——在防火墙规则启动后执行,输入以上四条命令,点击“应用设置”保存,这样每次路由器重启之后,会自动执行此命令。至此路由器的IPv6设置基本完成,可以试试用IPv6地址打开路由器了。
⑤使用手机网络检验是否能用IPv6地址直接外网访问路由器
手机断开wifi,使用流量上网,在浏览器中输入如下格式的地址
http://[2409:***:***:***:***:***:***:***]
注意,中括号是必须要有的,你只需要将第③步记住的IPv6地址LAN或者wan的地址填入进中括号中即可,地址后面的/60或者/64千万不要填进去。
弹出要求输入管理账户密码,说明通过IPv6已经可以从外网访问家中的路由器了,但是此时局域网内的NAS还是不能访问的。
⑥添加NAS的IPv6网址及端口
打开群晖——控制面板——网络——局域网,找到24开头的IPv6地址,复制下来,依旧注意末尾的/64不要复制
打开SSH工具,输入命令
ip6tables -A FORWARD -p tcp -m multiport --dport 8096,5000 -d 2409:***:***:***:***:***:***:*** -j ACCEPT
ip6tables -P OUTPUT ACCEPT
加粗部分改成你刚刚复制的群晖的IPv6地址,其余部分都不用改动。前面的5000代表群晖的端口,8096代表后面访问jellyfin服务器的端口。
依旧需要将上面两条命令按照步骤④写入进 参数设置——脚本——在防火墙规则启动后执行
此时用手机打开地址
http://[2409:***:***:***:***:***:***:***]:5000
中括号内是NAS的IPv6地址,手机已经可以打开群晖的登录界面了
⑦设置Jellyfin服务器
打开jellyfin服务器,左上角三道杠——控制台——联网——IP协议——启用IPv6——保存
建议在套件中心重启一下jellyfin,等待片刻后,用手机验证打开网址
http://[2409:***:***:***:***:***:***:***]:8096
中括号内依旧是NAS的IPv6地址
可以正常访问
下午测试了一下,家里100M宽带,用外网观看jellyfin视频下载速度能到3M多,已经是很好了,而且传输速度很稳定,爽到飞起!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
网友评论