通过命令行直接在华硕路由器上安装V2Ray
本文记录我在华硕ASUS AC86U路由器上安装V2Ray,并且实现全家所有设备翻墙的方法。本文所述的方法并非通过KoolShare官方改版梅林Merlin系统,从应用中心进行安装,而是直接通过SSH连接路由器后台并进行安装。适合动手能力较强者进行,若无充分准备,可以直接参考KoolShare论坛提供的官改版梅林安装教程,但官改系统是闭源系统,安全性能有待考证。
本文的主要目的是记录安装过程,以便日后需要维护能够回忆当时的安装思路,同时与大家交流讨论。使用V2Ray的目的是从Google Drive中获取以前存放的文件,请勿非法使用。
前期准备
-
在路由器上安装梅林Merlin固件,下载V2Ray安装包,由于AC86U使用的是32位ARM处理器,因此下载v2ray-linux-arm.zip版本文件。
-
建立JFFS文件系统并且打开SSH,具体方法可以参考企业号航行网志。
安装V2Ray
要在路由器上安装V2Ray,首先需要通过SSH连接Merlin固件,并将V2Ray安装包解压之后通过scp/sftp等方式发送至路由器端/jffs
路径下,本文将其放置在/jffs/v2ray
文件夹内。
修改v2ray
根目录中的config.json
文件,需要注意的是,与在服务器端配置V2Ray不同,在路由器端需要将inbounds
设置为监听家中的所有有线/无线设备,outbounds
部分将流量转发至V2Ray服务器端,具体的V2Ray服务器端配置方法,可以参考V2Ray官方网站,或ToutyRater的V2Ray配置指南。
配置完成后,简要设置应该如下所示:
|
|
至此,通过/jffs/v2ray/v2ray --config=/jffs/v2ray/config.json
,能够在命令行中启动V2Ray,如果需要V2Ray在路由器开机后自动启动,可以参考企业号航行网志第三页#V2Ray设定
部分的内容,此处不做赘述。
尝试连接
在macOS(或其他设备,本文以macOS/iOS/iPadOS为例)上的网络设置中,将高级设置/代理
中,将SOCKS代理设定为路由器开放的地址及端口,见下图。
可以发现macOS的数据包已经成功转发至路由器,并且能够访问所需的网络资源。
问题在于:此时macOS的所有流量都会被转发到服务器,服务器承压过大,且Google通过流量计费,会浪费大量费用。
路由器上搭建WPAD
为了解决上面的问题,我们需要在路由器端(或其他服务器上)搭建WPAD,WPAD的具体解释可以参考维基百科,简单地说,它和我们日常使用V2Ray/ShadowSocks客户端时看到的PAC模式类似,能够将特定的流量转发代理端口从而通过服务器,非指定范围内的流量则不通过服务器转发。
为了方便管理和配置,以及节省服务器开销,本文直接将WPAD搭建在Merlin中,若路由器性能不足,则可以考虑搭建在其他服务器上,搭建在其他服务器时,PAC文件中端口转发的设定需要和搭建在本地完全一致。
后续方法参考sskaje的思路。
检查WPAD文件状态
首先,在路由器上检查目前WPAD没有被使用,连接路由器后,执行以下命令。
|
|
可以wpad.dat
文件指向/www/ext/proxy.pac
文件,但是进入/www/ext/
目录,发现proxy.pac
文件并不存在。
新建pac文件并写入内容
因此,新建proxy.pac
文件,写入内容,建议参考gfwlist2pac,该项目每天会将GFW列表转化为pac文件。
需要注意的是,pac文件中的var proxy
是在操作系统读取到文件之后,需要将特定规则的流量转发到的地址,因此,需要是你上方在路由器中配置的inbound
地址。
|
|
如果有特殊需求(在原有pac文件外的站点)需要转发,则可以添加在rules
中。
修改Dnsmasq
Dnsmasq的详细解释可以参考维基百科,简单地说,就是路由器上额外的DNS解析表,方便在局域网内将某一个域名解析为特定的IP,可以理解为修改局域网内全局的hosts文件。
修改/jffs/scripts/dnsmasq.postconf
文件为下方内容。
|
|
由于本人对bash的了解较少,因此直接使用了sskaje的设定。
设定完成后,将该文件权限修改为可执行,并重启Dnsmasq服务。
|
|
可以通过下述命令,验证Dnsmasq文件已经被成功加载。
|
|
进一步地,在浏览器中访问http://wpad.my.home.local/proxy.pac
后,应该会自动将你设定好的pac文件下载至本地。
本地设备打开自动代理模式
在macOS上打开网络设定,在高级设置/代理
中将自动代理打开,并填写在dnsmasq.postconf
文件中设定的URL,如下图所示。
至此,macOS中所有指定的流量都能够通过V2Ray转发至服务器,非指定流量则通过直接连接发送。
iOS/iPadOS的PAC文件设定
以iOS设备为例,在设置/无线网络
中连接你的路由器,并在右侧点击蓝色标志,进入详细设置。
点击最下方的HTTP代理
,进入设置代理,选择自动模式,并且填写上方的URL,如下图所示。
最需要注意的是,配置完成之后,点击右上方保存,关闭无线网络并重新打开,连接该路由器设备,才会加载pa c文件!我在这个步骤耗费了接近2个小时,实在找不到bug,直到重启无线网络才发现问题的关键…
展望和构想
将有线/无线设备直接连接路由器后,并不进行额外设置直接能够实现流量判断和转发。
该功能的实现或许需要路由器上的额外设置或者软路由的加成,在KoolShare官改版Merlin的应用中心中的V2Ray插件似乎能够实现相关功能,但我并不确定AC86U的性能能否在本机实现这个功能,暂时没有并未深入研究。后期可能会尝试实现此功能,并通过另外一篇文章来介绍实现方式。
欢迎交流与讨论。