V2Ray

网站:https://www.v2ray.com/zh_cn/index.html

V2Ray 是什么?

V2Ray 是一个开源项目,使用 Go 语言编写,可运行于多个操作系统之上。V2Ray 是一个平台,支持多种网络代理协议。在 V2Ray 的帮助下,用户通过一些配置即可实现从一种协议到另一种协议的转换。

V2Ray 自有的 VMess 协议,可以用于混淆网络数据,使得数据在两个 V2Ray 节点之间不可被识别。

主要功能

多用户支持

V2Ray 提供的 VMess 协议支持多用户,只需要开启一个端口,就可以让多个用户以不同的 ID 连接进来,不需要一个用户对应一个端口。

动态端口

经过配置,V2Ray 服务器端可以周期性改动通信端口,以规避某些运营商的流量限制。

灵活配置

V2Ray 支持多种代理协议,并可按需求灵活配置。使用同一个 V2Ray 应用程序,搭配不同的配置文件,即可完成代理客户端、服务器或者中转的不同使用场景。

内置路由

V2Ray 内置了路由功能,可以灵活地设置哪些网站(或 IP)使用代理,哪些网站(或 IP)直连。相较于使用浏览器的 PAC 设置,V2Ray 的路由功能更为高效,在某些使用场景下配置更灵活。

支持平台

V2Ray 在以下平台中可用:

Windows Vista 及之后版本(x86 / amd64); Mac OS X 10.7 及之后版本(amd64);
Linux 2.6.23 及之后版本(x86 / amd64 / arm / arm64);
包括但不限于 Debian 7 / 8、Ubuntu 12.04 / 14.04 及后续版本、CentOS 6 / 7、Arch Linux;

原理

运作方式与SS基本一致,通过加密协议与远程服务器连接绕过防火墙,因此同样需要配置服务器与客户端。

环境:Debian

  1. 安装unzip
apt-get install unzip  
  1. 安装 V2Ray
curl -L -s https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/install-release.sh | bash  

即自动安装,并配置自动运行脚本

V2Ray 安装目录: /usr/bin/v2ray/

配置文件目录: /etc/v2ray/config.json

日志文件: /var/log/v2ray/access.log

操作指令: service v2ray start|stop|status|reload|restart|force-reload

配置服务器

编辑配置文件vi /etc/v2ray/config.json 用过SS的童鞋一定很熟悉,同样只需要修改极少的参数

{
  "port": 12286,  //端口,自己定义
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbound": {
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "2e29362e-b610-11e5-9f22-ba0be0483c18",   //用户id
          "level": 1
        }
      ]
    }
  }

用户id 后面类似密码的一行是UUID,可以通过这个网站批量生成,配置多用户只要添加多行即可,例如:

{
    "id": "2e29362e-b610-11e5-9f22-ba0be0483c18",
    "level": 1
},
{
    "id": "188b748e-b616-11e5-9f22-ba0be0483c18",
    "level": 1
},
{
    "id": "1d7d3ba8-b616-11e5-9f22-ba0be0483c18",
    "level": 1
}
  1. 启动服务器
    service v2ray start

配置客户端

客户端只包含一个应用程序与一个配置文件,修改配置文件中的端口与id即可 例如:

{
  "port": 6666,   //本地监听端口,自定义
  "log": {
    "access": ""
  },
  "inbound": {
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": false,
      "ip": "127.0.0.1"
    }
  },
  "outbound": {
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": "110.110.110.110",  //自己服务器的ip地址
          "port": 12286,  //服务器的端口,与客户端一致
          "users": [
            {"id": "2e29362e-b610-11e5-9f22-ba0be0483c18"}  //客户端id,与服务器端一致
          ]
        }
      ]
    }
  },

运行

v2ray.exe

浏览器配置略,参见各种SS教程

总结

感觉不知名作者的无私奉献。捐助作者请发送礼品卡编码至 donate@v2ray.com 自从SS作者被请喝茶以后众人人心惶惶,目测v2ray是个很好的替代方案。


备注:

  • 请不要写入本文所有配置文件中的注释部分,否则会报错
  • v2ray自带路由功能,可以自动判断是否走代理通道,不需要额外配置分流工具

进阶技巧: 让v2ray客户端后台运行(隐藏v2ray窗口) v2ray目前不支持后台运行,我们可以使用Windows自带的PowerShell实现

打开PowerShell运行命令即可:

Start-Process "\安装路径\v2ray.exe" -WindowStyle Hidden  

添加客户端开机后台启动

  • 新建文本,写入刚才的PowerShell命令,存为v2ray.ps1脚本文件(类似.bat)
  • 新建文本,写入"\powershell应用路径\powershell.exe" -WindowStyle Hidden -file "\ps1脚本文件路径\v2ray.ps1",存为v2ray.bat
  • 将v2ray.bat文件放到windows的启动文件夹内

解决v2ray.ps1脚本显示错误提示:此系统中禁止执行

这是由于是由于受到防止恶意脚本的执行策略影响:

  • 打开PowerShell ,执行Get-ExecutionPolicy查看当前策略 如果显示Restricted表示脚本不能运行
  • 执行Set-ExecutionPolicy UnRestricted执行策略更改 会提示是否要更改执行策略,执行y即可

客户端配置http代理

http代理是v1.3加入的新功能
只需要在客户端的配置文件中加入以下字段即可:

"inboundDetour": [
    {
      "protocol": "http",
      "port": "1088",   #本地监听端口,自定义
      "settings": {}
    }
  ],

开启动态端口功能

动态端口功能是v1.5加入的新功能,如果同一端口通信时间过长,或流量过大,则有可能被服务商限速。于是 V2Ray 提供了一个功能来动态调整通信端口。

只需要配置服务器端配置文件vi /etc/v2ray/config.json,请参考常用配置列表

添加inboundDetour字段:

"inboundDetour": [
    {
      "protocol": "vmess",
      "port": "30001-30100",  // 按需开放 30001 到 300100 这 100 个端口
      "tag": "detourHandler", // 和上面提到的标签一致
      "settings": {
        "clients": [  // clients 部分和原有配置一样
          {
            "id": "2e29362e-b610-11e5-9f22-ba0be0483c18",
            "level": 1,
            "alterId": 100
          }
        ]
      },
      "allocate": {            // 端口分配模式
        "strategy": "random",  // 随机开启
        "concurrency": 2,      // 同时开放两个端口
        "refresh": 5           // 每五分钟刷新一次
      }
    }
  ],

在inbound字段内添加features字段内容

"features": {             // VMess 特性配置
        "detour": {             // 绕路配置
          "to": "detourHandler" // 指定绕路协议的标签,要下面 inboundDetour 中的标签一样
        }
      }

再次ps:记得删除注释文字部分 pppps:请参考配置文件 ,不要漏掉逗号造成语法错误