月下博客

V2Ray一键安装搭建脚本,从零开始教你搭建V2Ray服务端配置/客户端配置

V2ray简介

简单来说, V2Ray是一个流量转发的工具, 可以实现跟酸酸乳一样的效果, 它的优势是采用VMess协议, 可单独设置传输载体,比如TCP、mKCP、WebSocket等。而且V2Ray的节点可以伪装成正常的网站(HTTPS), 将其流量与正常的网页流量混淆。

frp内网穿透安装及配置

以前已经写过很多关于frp内网穿透的相关教程了,比如

Padavan固件frp客户端设置

Linux系统Frp一键安装脚本&管理脚本

frps穿透服务端和frpc客户端设置

V2ray服务端配置

下面以CentOS 7.X为例配置TLS + WebSocket版本的V2Ray, 这样的好处是: 加密性更强, 而且如果服务器被墙之后, 可以直接配置CDN,继续使用,妥妥的不受影响。

1.下载一键脚本

yum install -y wget
wget https://install.direct/go.sh

2.执行安装V2Ray

sudo bash go.sh

3.V2Ray安装成功提示


当看到类似下面的提示就算安装成功了

Installing curl
...省略...
Donwloading V2Ray.
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0   2403      0 --:--:-- --:--:-- --:--:--  2412
100 2583k  100 2583k    0     0  1229k      0  0:00:02  0:00:02 --:--:-- 1847k
Installing unzip
...省略...
PORT:40827
UUID:505f001d-4aa8-4519-9c54-6b65749ee3fb
Created symlink from /etc/systemd/system/multi-user.target.wants/v2ray.service to /lib/systemd/system/v2ray.service.
V2Ray v2.33 is installed.

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

/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:域名数据文件

此脚本会配置自动运行脚本。自动运行脚本会在系统重启之后,自动运行 V2Ray。目前自动运行脚本只支持带有Systemd的系统,以及 Debian / Ubuntu全系列。

V2Ray服务器配置参数

V2Ray安装完成后,配置文件位于/etc/v2ray/config.json,

通过编辑config.json文件来配置你需要的代理方式。以下是我常用的WebSocket配置demo, 双//后的为注释内容

   {
   "inbounds": [
       {
           "port": 10086,  //自定义端口号
           "listen": "127.0.0.1",
           "protocol": "vmess",  //采用vmess协议
           "settings": {
               "clients": [
                   {
                       "id": "4346de4e-6224-4f02-a388-134c2e3aead9", //UUID,安装V2Ray成功后,会默认生成一个,也可以通过在线网站https://www.uuidgenerator.net/生成
                       "alterId": 4 //额外ID,[1,64]均可,值会大,效率越低
                   }
               ]
           },
           "streamSettings": {
               "network": "ws",  //采用WebSocket协议
               "wsSettings": {
                   "path": "/ray"  //自定义WS路径,Nginx配置时用
               }
           }
       }
   ],
   "outbounds": [
       {
           "protocol": "freedom",
           "settings": {}
       }
   ],
   "routing": {
       "rules": [
           {
               "type": "field",
               "ip": [
                   "geoip:private"
               ],
               "outboundTag": "blocked"
           }
       ]
   }
}

TLS证书配置放在Nginx中进行配置,V2Ray服务端就不需要配置了。

附V2Ray常用命令

service v2ray start #启动V2Ray服务
service v2ray stop #停止V2Ray服务
service v2ray status #查看V2Ray服务状态
service v2ray reload #重载V2Ray配置文件
service v2ray restart #重启V2Ray服务

TLS证书简介

TLS是证书认证机制,所以使用 TLS 需要证书,证书也有免费付费的,同样的这里使用免费证书,证书认证机构为Let's Encrypt。 证书的生成有许多方法,这里使用acme.sh 一键脚本生成。

证书有两种,一种是ECC 证书(内置公钥是 ECDSA 公钥),一种是RSA 证书(内置 RSA 公钥)。简单来说,同等长度 ECC 比 RSA 更安全,也就是说在具有同样安全性的情况下,ECC 的密钥长度比 RSA 短得多(加密解密会更快)。但问题是 ECC 的兼容性会差一些,Android 4.x 以下和 Windows XP 不支持。只要您的设备不是非常老的老古董,强烈建议使用 ECC 证书。

证书生成只需在服务器上操作, 前提是自备一个域名

注册好域名之后务必记得添加一个 A 记录指向你的 VPS

以下假设注册的域名为 mydomain.com,请将之替换成自己的域名。

免费证书生成

以下命令在/root目录下演示.

安装acme.sh

curl  https://get.acme.sh | sh

安装成功后执行 source ~/.bashrc 以确保脚本所设置的命令别名生效。

如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:

sudo yum -y install netcat

使用acme.sh生成证书

以下的命令会临时监听 80 端口,请确保执行该命令前 80 端口没有使用

sudo ~/.acme.sh/acme.sh --issue -d mydomain.com --standalone -k ec-256

当出现类似以下,就说明证书生成成功了,证书目录位于/root/.acme.sh/mydomain.com_ecc目录下,其中modomain.com_ecc根据自己填写的域名变化

   [Fri Dec 30 08:59:12 HKT 2016] Standalone mode.
[Fri Dec 30 08:59:12 HKT 2016] Single domain='mydomain.com'
...
[Fri Dec 30 08:59:16 HKT 2016] Cert success.
....
[Fri Dec 30 08:59:16 HKT 2016] Your cert is in  /root/.acme.sh/mydomain.com_ecc/mydomain.me.cer
[Fri Dec 30 08:59:16 HKT 2016] Your cert key is in  /root/.acme.sh/mydomain.com_ecc/mydomain.me.key
[Fri Dec 30 08:59:16 HKT 2016] The intermediate CA cert is in  /root/.acme.sh/mydomain.com_ecc/ca.cer
[Fri Dec 30 08:59:16 HKT 2016] And the full chain certs is there:  /root/.acme.sh/mydomain.com_ecc/fullchain.cer

证书更新命令

由于Let's Encrypt的证书有效期只有3 个月,因此需要90 天至少要更新一次证书,acme.sh 脚本会每 60 天自动更新证书。当然也可以手动更新。

手动更新 ECC 证书,执行:

sudo ~/.acme.sh/acme.sh --renew -d mydomain.com --force --ecc

如果是 RSA 证书则执行:

sudo ~/.acme.sh/acme.sh --renew -d mydomain.com --force

Nginx配置

Nginx安装

Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的yum源。

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx

Nginx配置V2Ray转发(TLS + WS)

创建Nginx-V2Ray配置文件

在/etc/nginx/conf.d目录, 创建v2ray.conf配置文件

v2ray.conf 配置参数

   server {
  listen 443 ssl;
  ssl on;
  ssl_certificate       /.acme.sh/www.mydomain.com_ecc/www.mydomain.com.cer;   #acme.sh生成的证书路径
  ssl_certificate_key   /.acme.sh/www.mydomain.com_ecc/www.mydomain.com.key;   #acme.sh生成的证书路径
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  server_name           www.mydomain.com;   #证书绑定的域名
    location /ray { # 与 V2Ray 配置中的 path 保持一致
      proxy_redirect off;
      proxy_pass http://127.0.0.1:10086; # 端口与 V2Ray 配置中的 port 保持一致
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
      # Show real IP in v2ray access.log
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

重启Nginx

重新加载Nginx配置,使其生效

nginx -s reload

注意事项

V2Ray 自4.18.1后支持TLS1.3,如果开启并强制TLS1.3请注意v2ray客户端版本.

如果在设置完成之后不能成功使用,可能是由于SElinux机制(如果你是 CentOS 7 的用户请特别留意 SElinux 这一机制)阻止了 Nginx 转发向内网的数据。如果是这样的话,在 V2Ray 的日志里不会有访问信息,在 Nginx 的日志里会出现大量的 “Permission Denied” 字段,要解决这一问题需要在终端下键入以下命令:

setsebool -P httpd_can_network_connect 1

请保持服务器和客户端的 wsSettings 严格一致,对于 V2Ray, /ray 和 /ray/ 是不一样的。

附Nginx常用命令

nginx -t           #测试配置文件
nginx              #启动命令
nginx -s stop      #强制停止Nginx服务
nginx -s quit      #处理完请求后再停止服务
nginx -s reload    #重启命令
ps -ef |grep nginx #查看进程命令
nginx -v           #查看Nginx的版本号

官方QQ群号码:922069959(空)1093596563(空)

您可能感兴趣的文章