// 添加文章页展开收缩JS效果

老师说写文章要有第一段

目前自建VPN大多首选SS/SSR,优点是搭建简单维护方便,使用人数多;另一种是相对复杂点的V2Ray,功能强大,可高度自定义加密协议和路由规则,可玩性高,但因为搭建和配置相对复杂,使用人数较少。因为可以完全的DIY,每个人的配置可能都不一样,所以V2Ray的流量特征不明显。如果你喜欢折腾,喜欢和别人不一样,那就一定要试试V2Ray,因为它绝对是你的菜~ 最后一种是WireGuard,还没体验,暂时不予评论。

V2Ray和SS/SSR哪个快?

从我的使用感觉上来说,V2Ray要比SS/SSR要快一点点,大致估摸着快1/5左右(PS,主观使用感受)如果不是对网络有太高要求,只是Google查查资料,偶尔看看Youtube,SS/SSR和V2Ray日常使用上的感觉是差不多的。

详细的评测可以看下面这个视频(Youtube视频,需要梯子,或者复制地址:https://www.youtube.com/watch?v=9UkVDoZpOYE):

工作原理

V2Ray和SS/SSR一样,分为客户端和服务器端。V2Ray其实就只有一个主程序,客户端和服务器端用的都一样,只是JSON文件的配置不同,也就是说服务器可以当客户端,客户端可以当服务器,聪明的你是不是突然有了很多邪恶的想法?哈哈哈~

V2Ray是以入站协议(Inbound)和出站协议(Outbound)来控制流量,可以想象为一个盒子,有入口和出口,数量可根据自己需要灵活设置,引用一段官方文档的描述:

以下是单个 V2Ray 进程的内部结构示意图。多个 V2Ray 之间互相独立,互不影响。

  • 需要配置至少一个入站协议(Inbound)和一个出站协议(Outbound)才可以正常工作。
    • 入站协议负责与客户端(如浏览器)通信:
      • 入站协议通常可以配置用户认证,如 ID 和密码等;
      • 入站协议收到数据之后,会交给分发器(Dispatcher)进行分发;
    • 出站协议负责将数据发给服务器,如另一台主机上的 V2Ray。
  • 当有多个出站协议时,可以配置路由(Routing)来指定某一类流量由某一个出站协议发出。
    • 路由会在必要时查询 DNS 以获取更多信息来进行判断。

下面是我画的V2Ray的流量路径简略图:

V2Ray简略图

V2Ray的强大之处就在于Inbound和Outbound的高度自定义,针对不同的情况设置不同的In/Outbound规则,再利用路由功能进行流量分发,完美!

简单比喻来说,每个Outbound就是一扇门,门后面有你要去的目的地或者是干脆就是个黑洞(上图的服务器端Outbound1,可根据自己需要屏蔽特定域名的广告,从而实现广告过滤功能。)路由功能就像一块指示牌,不同的流量指向不同的门(即Outbound),从而实现高度DIY,如上图客户端的Outbound1和 Outbound2,分别为通过服务器连接和直接连接。

Well~知道V2Ray是以进站、出站路由组成的即可初步上手。 详细说明请参考官方文档: https://www.v2ray.com/

服务器搭建

服务器选择

我选择的是Vultr,这是我的邀请链接:https://www.vultr.com/?ref=7776437-4F注册即送50刀,心动不如行动 !(emmm……这个广告很粗暴)

具体的注册和开通方法可见我另一篇关于SS搭建的文章:传送门

正式搭建

第一步 同步服务器和客户端时间

声明:本篇文章的服务器端的执行环境为Cent OS 7! 其他系统大同小异。

V2Ray对服务器端和客户端的同步时间有要求,误差在90秒之内,所以第一步统一服务器和客户端时间,我大天朝的时区为东八区,首先查看服务器时间:

date -R

如果服务器时间和本地时间一致,直接跳过这一步,如果不一致,可使用命令date –set 来修改时间,例如修改为2019年5月10日下午3点10分10秒,则格式为:

date --set="2019-05-10 15:10:10"
第二步 安装服务器端V2Ray

V2Ray 提供了一个在 Linux 中的自动化安装脚本。这个脚本会自动检测有没有安装过 V2Ray,如果没有,则进行完整的安装和配置;如果之前安装过 V2Ray,则只更新 V2Ray 二进制程序而不更新配置。

以下指令假设已在 su 环境下,如果不是,请先运行 sudo su。

运行下面的指令下载并安装 V2Ray。当 yum 或 apt-get 可用的情况下,此脚本会自动安装 unzip 和 daemon。这两个组件是安装 V2Ray 的必要组件。如果你使用的系统不支持 yum 或 apt-get,请自行安装 unzip 和 daemon。

执行自动安装脚本:

bash <(curl -L -s https://install.direct/go.sh)
[[email protected] ~]# bash <(curl -L -s https://install.direct/go.sh)
Installing V2Ray v4.18.0 on x86_64
Downloading V2Ray: https://github.com/v2ray/v2ray-core/releases/download/v4.18.0/v2ray-linux-64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0    878      0 --:--:-- --:--:-- --:--:--   878
100 10.5M  100 10.5M    0     0   122k      0  0:01:28  0:01:28 --:--:--  179k
Extracting V2Ray package to /tmp/v2ray.
Archive:  /tmp/v2ray/v2ray.zip
  inflating: /tmp/v2ray/config.json
   creating: /tmp/v2ray/doc/
  inflating: /tmp/v2ray/doc/readme.md
  inflating: /tmp/v2ray/geoip.dat
  inflating: /tmp/v2ray/geosite.dat
   creating: /tmp/v2ray/systemd/
  inflating: /tmp/v2ray/systemd/v2ray.service
   creating: /tmp/v2ray/systemv/
  inflating: /tmp/v2ray/systemv/v2ray
  inflating: /tmp/v2ray/v2ctl
 extracting: /tmp/v2ray/v2ctl.sig
  inflating: /tmp/v2ray/v2ray
 extracting: /tmp/v2ray/v2ray.sig
  inflating: /tmp/v2ray/vpoint_socks_vmess.json
  inflating: /tmp/v2ray/vpoint_vmess_freedom.json
PORT:34494
UUID:7d955992-db00-4d12-83f2-41327bf75d64
Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /etc/systemd/system/v2ray.service.
V2Ray v4.18.0 is installed.

注意提示行中的PORT和UUID的字符,后面会用到,最好截图保存一下。错过也没有关系,下文会介绍如果配置新的UUID。

  • PORT为你的服务器监听端口,即服务器的Inbound入口端口;
  • UUID为128位标识符,即通用唯一识别码,也就是账户名,客户端的Outbound连接到服务器的Inbound时需要声明,可以理解为身份证号或者钥匙,下面配置客户端的Outbound要用到。

此脚本会自动安装以下文件:

  • /usr/bin/v2ray/v2ray:V2Ray 程序;
  • /usr/bin/v2ray/v2ctl:V2Ray 工具;
  • /etc/v2ray/config.json:配置文件;
  • /usr/bin/v2ray/geoip.dat:IP 数据文件
  • /usr/bin/v2ray/geosite.dat:域名数据文件

运行脚本位于系统的以下位置:

  • /etc/systemd/system/v2ray.service: Systemd
  • /etc/init.d/v2ray: SysV
第三步 编辑/查看服务器端V2Ray配置文件

方法一:通过Putty连接服务器,使用LINUX自带的VI或VIM编辑(VI/VIM使用方法见零另一篇介绍SS的文章:传送门):

vi /etc/v2ray/config.json

方法二(推荐):通过WinSCP连接服务器,下载config.json文件到本地,编辑好之后上传替换,如果不知道如何使用WinSCP请参考这篇文章:传送门(PS, 虽然也可以用Windows自带的记事本打开json,但由于编码问题,如果有涉及到汉字,会出现乱码,所以既然打算折腾,就专业点!本地代码编辑器推荐Sublime Text,小巧,启动快)

清空原有内容,粘贴下面代码至服务器端config.json:

{
  "inbounds": [{
    "port": xxxxx, // 替换为你的服务器监听端口
    "protocol": "vmess",
    "settings": {
      "clients": [{ "id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }]  //UUID,替换为你的服务器UUID
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

编辑完成后,使用下面命令启动V2Ray:

systemctl start v2ray

其他V2Ray命令:

systemctl start v2ray    //启动V2Ray
systemctl status v2ray   //查看V2Ray状态
systemctl stop v2ray    //停止V2Ray
如何升级?

在 VPS,重新执行一遍安装脚本就可以更新了,在更新过程中会自动重启 V2Ray,配置文件保持不变。

bash go.sh
第三步 安装客户端V2Ray

Github走起:
https://github.com/v2ray/v2ray-core/releases

往下拉,下面可以看到V2Ray根据不同的操作系统发布相应的程序,此处以windows-64位为例:

点击下载后,解压缩如下:

  • v2ray.exe 运行 V2Ray 的程序文件
  • wv2ray.exe 同 v2ray.exe,区别在于wv2ray.exe是后台运行的,不像 v2ray.exe 会有类似于 cmd 控制台的窗口。运行 V2Ray 时从 v2ray.exe 和 wv2ray.exe 中任选一个即可
  • config.json V2Ray 的配置文件,后面我们对 V2Ray 进行配置其实就是修改这个文件
  • v2ctl.exe V2Ray 的工具,有多种功能,除特殊用途外,一般由 v2ray.exe 来调用,用户不用太关心
  • geosite.dat 用于路由的域名文件
  • geoip.dat 用于路由的 IP 文件
  • 其它 除上面的提到文件外,其他的不是运行 V2Ray 的必要文件。更详细的说明可以看 doc 文件夹下的 readme.md 文件,可以通过记事本或其它的文本编辑器打开查看

上文说过,V2Ray的客户端和服务器端其实是一个东东,唯一不同的就是上面的红框框住的config.json配置文件。

下面开始配置客户端json:

通过 Sublime Text 打开config.json文件,清空所用内容,复制粘贴下面代码;

{
  "inbounds": [{
    "port": 1080,  // SOCKS 代理端口,在浏览器中需配置代理并指向这个端口
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "udp": true
    }
  }],
  "outbounds": [{
    "protocol": "vmess",
    "settings": {
      "vnext": [{
        "address": "xx.xx.xx.xxx", // 服务器地址,请修改为你自己的服务器 ip 或域名.
        "port": xxxxx,  // 服务器端口
        "users": [{ "id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }]  //UUID,请改为你自己服务器端的UUID,只修改引号内即可。
      }]
    }
  },{
    "protocol": "freedom",
    "tag": "direct",
    "settings": {}
  }],
  "routing": {
    "domainStrategy": "IPOnDemand",
    "rules": [{
      "type": "field",
      "ip": ["geoip:private"],
      "outboundTag": "direct"
    }]
  }
}
  • IP地址你肯定知道的;
  • 端口号可以用服务器端默认端口,每个人不同,详见安装服务器时提示或打开服务器端config.json查看;
  • UUID用服务器端默认的,也就是刚才提示的,如果忘了截图或者想改,生成一个即可,UUID生成器但是!切记,一旦生成一个新的UUID,必须把服务器端和客户端同步改成新的UUID,也就是说必须保持服务器端和客户端这两份config.json里的UUID一致!!!

修改好保存立即生效,双击运行v2ray.exe执行程。

如果此时窗口出现闪退:

  • 1:核对服务器和本地时间;
  • 2:如果开启了SS,请退出SS程序;

可选代理方式

V2Ray由于具有高度的自由度,会把一切选择权交给用户。可以有以下两种上网方式:

1、 配置浏览器socks代理上网

此方法会将所有浏览器的流量通过Socks代理给到V2Ray指定IP和端口,从而实现科学上网,谷歌浏览器推荐使用SwitchyOmega扩展插件,火狐浏览器直接使用自带的即可。代理配置如下,大同小异,只要代理服务器和端口别弄错就OK,分别是本地代理服务器:127.0.0.1,端口1080.

2、 通过V2RayN模块实现全流量代理

上面通过浏览器代理虽然可以正常使用,但是如果电脑上其他程序需要科学上网时,该方法就有点捉襟见肘了。如果你有这方面的需求,推荐第二种方法,使用V2RayN。

V2RayN为第三方开发的一个可视化的窗口,使用界面和SS差不多。

V2RayN地址: https://github.com/2dust/v2rayN/releases

V2RayN项目中有两个,一个是v2rayN-Core.zip,一个是v2rayN.zip。前一个是包含V2Ray核心和V2RayN的整合包,解压即用。后一个是只有v2rayN程序,下载后解压缩,将所有内容复制至V2Ray文件夹下即可。使用时请运行v2rayN.exe。

点击服务器-添加VMess服务器

(PS:相信你应该发现了,V2Ray也可以使用SS,因为V2Ray 集成有 Shadowsocks 模块,用 V2Ray 配置成 Shadowsocks 服务器或者 Shadowsocks 客户端都是可以的,兼容 Shadowsocks-libev,具体请见V2Ray文档)

如果你的服务器是按照我上面提供的config.json配置方式,那么填写好上面三个主要数据,后面保持默认,点击确定即可,如果有自定义规则,请自行选择你的配置方式。

右下角状态栏里右键,选择PAC(PAC和全局的区别在上一篇说SS的有介绍,感兴趣可自行Google),然后开启代理,搞定!

最最后一步 别忘了在你的服务器防火墙开放对应端口!
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent    //xxxx请改为对应服务器端口

重启防火墙以更新配置的端口规则,输入如下命令 :

firewall-cmd --reload

以上。

官方文档: https://www.v2ray.com/

手机端-安卓:推荐使用 BifrostV 配置方法和上面大同小异,填写IP\PORT\UUID即可。


更新日志: 2019年5月11日 更新V2RayN代理方式、开启服务器防火墙端口。
分类: Hello world!

发表评论

%d 博主赞过: