起因是这样的,某些网站会打不开或者打开缓慢,一般都是在电脑上安装一个V2****软件。但我有不只一个电脑需要代理,不仅自己的电脑需要,公司的电脑也需要。一开始我是2个电脑上都安装了V2,但有些问题:一个是多占用一个在线客户端的名额,另一个是路由规则我修改还蛮频繁的,修改后还要两边来回同步,特别地不方便。

然后我想到,如果搭建一个公共的V2客户端,然后大家都使用这个来代理不就解决问题了吗?

然后我开始搜索解决方案,其中被提到最多的是利用网关或者旁路由来做透明代理。但看到一半我就放弃了,因为这通常需要给开发板刷openwrt一类的软件,然后在luci界面安装对应插件实现的。我的香橙派还要跑NAS的好不好,怎么可能刷openwrt呢。

另外就是透明代理本身的问题,虽然透明代理很好,可以让整个设备进入代理状态,无需另外在设备内设置代理参数,但这个方案也不太适合我,主要是网络环境的原因。首先就是我的香橙派部署的位置和公司的无线路由器之间有遮挡,而且路由器只开启了5G WIFI。这导致香橙派到路由器的访问速度不是很理想。

其次就是局域网经常会出现拥堵,比如有人在下载游戏或者拉取仓库更新时,其它人的带宽和延迟就会受到巨大的影响。这会带来一个问题,就是上网设备到代理设备之间的网速非常慢,如果是下载或者看视频还好,一旦打起游戏来延迟至少100ms以上。最后就是香橙派WIFI的出网带宽也就是100Mbps左右,作为转发设备,一进一出,还得打个半折只有50Mbps了,远远低于我电脑直连路由器的2400Mbps。

透明代理这条路不可行,只能找其他解决方法。我发现大部分支持代理的应用,都可以通过HTTP协议或者SOCKS 5协议连接到代理服务器。这样就可以实现分应用代理了,让浏览器这类对延迟不敏感的应用走代理,而其它应用直连,既可以获得满速下载和低延迟游戏,又可以访问打开缓慢的网页。

一开始我是打算使用XRAY的,因为它是是全平台的。虽然是命令行版本的,没有V2****那样好用的图形界面,但总好过没有。有个比较头疼的是XRAY它不支持订阅链接,可能还要自己写一个程序去解析订阅链接,解析完后再把对应的服务器列表生成为XRAY可以解析的配置文件格式。

我都定好方案准备开工了,但突然在XRAY的官方发现一个名叫V2.RAYA的项目(把点取消),这也是一个支持V.LESS和V.MESS协议的客户端,但是跟别的项目不一样的是,它不是基于图形界面的,而是基于webui的,这就对香橙派这类纯命令行系统非常友好了。

QQ20251018-005051

主界面可以填入订阅链接,可以定时自动更新订阅,然后中间部分就是选择要连接的服务器,和其它类似的基于桌面环境的软件没有什么不同的。然后也可以自己编写路由规则,选择哪些流量走代理,哪些流量直连,都非常方便。

QQ20251018-005110

另外一个比较方便的是它有2组监听端口,一组是全局模式的端口,也就是流量全部都走代理,而忽略自己编写的路由规则。另一组是分流模式的端口,顾名思义就是会按自己编写的路由规则进行分流。

QQ20251018-005615

能同时提供这2组端口的软件确实非常非常少,但是却很实用,平时可以用分流模式的端口,如果需要临时访问一些打不开或者打开缓慢的网站,可以在对应的机器上切换端口到全局模式的那个端口,这样就不用登录这个后台去修改规则了,临时使用一下很方便。

最后,它甚至还支持V.MESS协议入栈,那这个就很厉害了,众所周知,常用的代理协议HTTP和SOCKS 5都是不加密的,不适合公网使用,但是V.MESS是有加密功能,这样好像就可以实现远程公网代理?总之玩法还挺多样的。要说美中不足的,就是这个项目的文档补全,其中大部分章节都是TODO状态,也就是只写了个标题,内容是完全没有的。然后有些功能就只能靠猜,完全没有文档可以参考。

最后我通过Docker把这个项目部署到了香橙派上,偶尔应付一下GITHUB或者X或者P站是没有问题的。至于其它需要代理的软件,都可以通过HTTP或者SOCKS协议链接过来,这样就能集中编辑分流的路由规则了。

在这期间我也学习到了不少相关知识,比如XRAY的分流架构,其中V.MESS协议既可以用作入站,也可以用作出栈,这样理论上是可以一个客户端连另一个客户端,然后再连接另一个客户端,这样像链条一样一次把流量传递到服务端的。大佬前辈们的软件确实牛逼,写出自由度这么高的架构,玩法的上限完全取决于自己的想法。