v2ray_linux_client

2022/05/18 One-minute read

v2ray

作为神一样的工具,始于2015年9月18日,可以毫不夸张的说,我是与它一起长大的。在那个还没有v2ray的时代,ss和ssr还在互相争执,各执己见。以前一直用ssr,后来听说ssr的流量特征已经被防火墙识别,基本上无效后,就开始接触到了v2ray。

说实话,相比于ssr的简单配置来说,v2ray不可不谓过于艰难,时至今日我依旧可以很笃定的说,ssr比v2ray容易搭建的多。

搭建v2ray需要哪些技术储备呢?

  1. 至少了解Linux的一些基础知识,包管理工具(apt,yum),linux文件操作命令,linux关于权限部分
  2. 最好有过搭建网站的经历。巧的是我曾经反复搭建过wordpress(见证过wordpress对php的最低要求从5.6->7.0),因为本身有过比较熟练的搭建网站的经验所以从ssr切到v2ray的时候,于我而言并没有很大的难度。如果把要求放低一点,至少要知道域名和ip的映射关系,买个域名总会把,然后稍微看看应该就行。
  3. 知道使用Github去找v2ray脚本,并按照教程去做(事实上这部分很难说,也许你什么问题都没有,如果过程有问题那就挺考验综合能力了)。
  4. 知道怎么使用客户端,因为是从ssr一路过来的,所以v2ray的很多客户端设置几乎不需要学习,都是老样子,但对于新手,如果没有人讲解大概率会有各种各样的问题。
  5. 知道v2ray对于时间同步的要求,当然现在有了最新的VLess协议,不过这是后话,反正就是更复杂了。

插曲

官方也有一个安装脚本,出这个脚本的原因,我猜大概和2333脚本事件有关。当时v2ray刚出来的时候,大部分都是使用2333的脚本去安装的,这里有一些往事就不提了,后面作者清仓库了。

通常

一般来讲,我们都是在linux上部署v2ray服务器端,windows上部署v2ray客户端。实际上我刚刚的这句话是不准确的,但是我依旧要这么描述。之所以说是不准确,是因为v2ray作为一个工具,并不区分服务器和客户端,我们这样叫只是为了易于理解。

起因

本来也没有v2ray linux client的需求的,但是我买了国内的服务器。我本来打算安装filebrowser应用,在github上找到源码以及安装说明,但是卡在了下载这里,这也是我一直很不喜欢的地方,封禁一些不健康的东西我是没有任何意见的,但是Github也处于半封态,真的很难受。我一直以来都是挂着代理访问github的,我实在是忍受不了不挂代理,访问github像是回到了2.5g的时代。

发展

于是乎我想的是将我国内的服务器连接我国外服务器的v2ray,实现流畅访问网络,解决我filebrowser的问题。我找了相关的资料,最后看中了这个:“https://www.witersen.com/?p=1408",按照这上面的教程,我又又又出问题了。

倒也不是完全失败,当我使用curl访问google时,curl --socks5 127.0.0.1:10808 https://www.google.com,确实返回了有效的值,嗯,就是正常访问到了。可是当我想下载东西的时候,就开始报错,Google上查了一下错误,研究了半天,试了很多次没有解决。当我心灰意冷的时候,我忽然看到TA文章中的一个地方很起疑,结合我之前使用wget报错了解到,wget不支持socks,仅仅是http。curl才支持。基于这些已知的东西,我猜想:

    export http_proxy=socks5://127.0.0.1:10808
    export https_proxy=socks5://127.0.0.1:10808

这个TA写的或许没有错,但是为什么要用socks呢,为什么不直接使用http,于是乎我就果断地改为了:

    export http_proxy=127.0.0.1:10809
    export https_proxy=127.0.0.1:10809

v2ray http代理是10809,socks代理是10808端口。

神奇的事情就出现了,当我 bash v2ray -config config.json 的时候,新开另外一个terminal,使用 wget -o https://www.google.com看到终端的显示我就明白,我成功了。随后我又试着下载了一些文件,同样没有问题,大喜过望。

随之而来的问题

我想要的是使v2ray作为服务后台一直运行,不能我把terminal关了就结束呀,systemctl enable v2ray,报错。然后就是我一通折腾,各种查资料,然后看到v2ray.service文件的内容进行合理的猜测,一通鼓捣后。systemctl enable v2ray 倒是没问题了;systemctl start v2ray能启动,但是systemctl status v2ray显示failed。在v2ray的issue中找的了一些解决的方案,但是试了试没用。

仰起头大呼一声,“啊”。不带这么折腾人的啊,不搞了不搞了,还是将就这终端方式使用吧。

另辟蹊径

rsync可真是个好工具,在另外一台可用的服务器上下载,再同步到我国内的服务器不就好啦,我可真是个小聪明。

结语

很多时候解决问题的方式不止一种,看问题的困难程度和需求程度。毕竟所有的一切都是为了更好的生活,更方便的体验,投入和获得要匹配才好。能解决和解决好是两件事,需求和强烈需求也是两种要求。

最合适的才是最好的!!!

也就只有在自己控制的地方才能这么直接的写v2ray,不然早就被审查掉啦。