在Linux上搭建V2ray服务端实现科学上网,网上有大量的教程文章,相信很多人都有试过。但是将v2ray作为linux的客户端代理实现科学上网可能很多人都没太弄明白。恰好最近和朋友在交流时遇到了这个问题。
情况大致:有一台阿里/腾讯云国内的vps,或者自己内网的一台linux主机。想用v2ray作为linux客户端实现科学上网或者代理加速下载资源的情况。
假设大家平时都是经常使用v2rayN作为windows上的代理客户端工具。
现在在vps上安装v2ray程序。现在安装v2ray和以前的一键脚本有所不同v2rayn启动服务失败。补充一下在linux上v2ray的client和server是一体,只是根据不同配置执行而已。
然后启动v2ray即可,因为是导出的客户端配置文件通常不会出现什么问题v2rayng linux客户端。
说明linux上的v2ray客户端已经启动成功了。因为v2ray默认是代理的socks的流量。所以linux上其他的程序要想实现代理都要把流量转发到1080端口才行。当然有些程序是支持socks代理的比如curl。
但是这种方式也有局限,就是我每次代理都需要指定socks代理。这里有另外一种让终端走代理(不推荐)。
通过这种方式设置之后像curl这种支持socks代理的就会直接转发,但是也存在局限v2rayng linux客户端,,以curl和wget对比。
可以看到这种方式curl是代理成功了的,但是wget却报错了不支持socks5。这很显然并没有达到我们的目的。而我们想要实现的不就是让linux上的大部分程序都走代理吗,不然也太鸡肋了。
所以让V2ray配合Proxychains就是非常棒的实现方式。就需要先安装Proxychains。但是这个不支持yum安装,只能git clone下来编译安装。
但很多国内的主机本身从github上下载的速度就巨慢,所以在使用Proxychains之前可以可以给git配置代理。
在我们想要代理的程序前面加上proxychains4即可实现代理,不管程序本身是否支持代理都可以代理转发。
经过一番测试发现proxychains对大部分程序都是可以正常代理的,但golang写的程序竟然不行,小伙伴可以自己试试。
其实对于LD_PRELOAD预加载劫持的trick我在以前也简单研究过。