树莓派系列的上一篇,我简单写了几个推荐搭建的项目,后面随着实际的使用我又遇到了不少新的有趣的项目,比较推荐的像之类的。还搭建了影音追剧一条龙,一口气解决片源下载字幕之类的问题,如果大家感兴趣也可以写一下操作过程。
回到正题,这篇文章的出现是因为我遇到的一个问题,在上一篇里面我有推荐clash for linux和v2,本来是想白嫖一些给NS加速的配置,原来我的做法是通过树莓派部署clash给LAN上的主机共享端口出来,然后直接在NS的网络设定中配置代理。这样下来虽然测试网络的时候地址是对的clash royale300分卡组,NAT也没有很差(B),但是在马车8和派对之类的游戏中想联机总是会报错。于是为了解决这个问题,有了今天的文章。
说新方案之前我还是先交代一下为什么以前的方案不行。根据我的观察,原来的配置方法相当于只走了http代理,而NS联机是包含UDP流量的,通过http代理也就是TCP转发并不能转发UDP流量,所以看起来代理了但是没有完全代理。
现在进入正题,新的方案,如果大家没有树莓派,任何能开docker的设备都可以用来替代。这里先说结论:
通过docker部署一个openwrt作为旁路网关,并在上面正确配置openclash,最后再配置NS走这个网关即可。
注意这里的正确,这个正确不单单是指我们要正确的配置它,还有一个比较关键得点是我们不能使用v2作为proxy。
我们最后想看到的效果是我们能顺畅的联机不会报错,想要这个效果需要我们代理后的NAT类型为A。这里要说明一下,我直连是可以进行联机不会报错的,这个时候我的NAT类型是B,但是当我按之前的方法代理NS流量之后虽然我的NAT类型还是B但是依然会报错NAT穿越失败。
在采用这个方法之前我试过了大多数方法clashrfor,比如什么开启UDP转发啊,再比如设置DNS改host之类的,都不行。最后我觉得我需要在路由层面代理NS流量才能做到完整的代理NS的所有请求,开始打算把树莓派直接刷成软路由,但是我已经部署了影音追剧一条龙还有各种小项目,最后查到了这个旁路网关的方法。
然后是流程,很简单:docker安装openwrt→成功后正确配置openclash→配置NS走旁路网关检查NAT类型是否为A或能否正常联机→排查失败原因
然后拉取镜像,首先官方的镜像不支持arm架构,所以我们需要从SuLingGG/OpenWrt-Rpi-Docker这个项目拉已经编译好的版本下来。然后注意默认latest标签的是rpi2的,我是rpi4所以改了下tag,各位根据自己的需求来改就可以。
上来检查一下网络 – 接口 – Lan – 修改界面中的忽略此接口(不在此接口提供 DHCP 服务)有没有勾上,没勾上就选中之后保存并应用。
其实openclash已经集成在里面了,只不过可能不是最新版,我这里放一下正常安装的步骤。
然后我们ssh到这个容器,用户名和密码跟WEB界面一样。ssh上来运行如下命令
这时候就安装好了,然后我们可以在WEB界面中的服务-OpenClash中查看clash royale300分卡组,。
至于为什么,我只能说只要是跟UDP沾上边就不要考虑v了,其他几个类型都可以,大家白嫖的时候一定注意一下。
但是我实际使用过程只有截图中这样配置我才是A类型的NAT,使用TUN的话代理不到流量,混合模式结果是B类型。
我这里实际测试FAKE-IP的效果不如现在这样好,大家可以根据实际情况来修改试试看
这里我其实遇到了一些玄学问题,最开始我DEV的内核是没法成功运行的,然后尝试了Meta后再切回来就好了。如果大家有遇到类似问题可以切一下试试。还有就是我发现Meta内核的效果也没有现在这样好,测速结果相差很多,可能跟我的网络环境也有关系,大家也根据实际情况进行选择吧
如果一直没成功,可以着重看下0x02 b和0x02 d,大概率是配置的选择问题。
如果单纯想测试NAT类型,可以用下面这个工具试一下clash royale300分卡组,运行需要安装runtime,记得安桌面版。clash royale300分卡组clashrfor