V2Ray进阶之WS+TLS

天无聊测试了下用CDN反代服务器,使用的CloudFlare的免费服务,VPS用的vultr,CloudFlare设置好后,IP变成了104段的CloudFlare CDN IP,隐藏IP确实做到了。但是,vultr+BBR加速后直连速度能跑到10Mb20Mb,延迟200ms左右,加了CDN后,延迟变成250+,速度只有23M,估计买收费的CDN服务会好点,或者买国内的CDN?实名后反代翻墙VPS?呃,这是个笑话。不过还是验证了一个事,CDN能反代V2Ray的Websocket模式的流量,并且隐藏VPS IP,如果是海外收费CDN服务,应该体验不会太差,对匿名有要求的朋友可以试一试。

一、安装LNMP(其实只需要nginx)

这里主要需要一个nginx作为反代,比较熟悉的人直接apt-get/yum安装nginx就好,可以跳过这一步。但是LNMP作为解决方案对小白来说比较友好。(反正我是除了LNMP不会配置这些环境-_-)

LNMP1.4版 代码来源https://lnmp.org/

由于LNMP安装时间很长,所以我们先运行一下

这样如果发生中断,可以重新连接VPS用
来恢复之前的安装而不至于被中断。安装代码`

1
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

代码运行后开始配置选项,从上到下是

1.数据库MySQL版本,默认5.5

2.数据库root用户密码,默认root

3.默认

4.PHP版本,我自用的是PHP7.1.7

5.默认

根据自己需求选好后,回车确认就开始漫长的编译过程了,参考值Vultr5刀配置,30分钟,GCE5刀0.2核配置,3小时,阿里云基础配置,40分钟。

这时候可以嗑瓜子磨牙,如果之前运行了screen,也可以按Ctrl+A+C新建一个窗口做别的事,比如配置V2Ray和BBR,之后只需要Ctrl+A+数字就能在窗口间来回切换

二、配置Nginx

当然还是用LNMP的方式,如果是自己安装的nginx,修改配置文件就好

首先建一个虚拟机

lnmp vhost add

根据自己需求配置,推荐选项只适合本文开启V2Ray的WS模式

1.输入VPS绑定的域名,以www.yourdomain.com为例

2.没有其他的域名直接回车,也可以加个无www版本 yourdomain.com

3.默认目录,直接回车

4.重写规则,这里没用,选n

5.是否开启log,选n

6.是否创建数据库,选n

7.是否添加SSL,推荐选y

8.有自己证书选1,这里选择2使用LetEncrypt自动签发证书

9.输入自己邮箱

任意键开始建立网站虚拟机

虚拟机建好后,我们需要修改nginx的配置

lnmp安装的nginx配置文件位于/usr/local/nginx/conf/vhost目录下,文件名为www.yourdomain.com.conf

打开这个文件

1
2
3
4
5
6
7
8
9
10
11
vi /usr/local/nginx/conf/vhost/www.yourdomain.com.conf

//在server443端口中添加一段
location /v2ray/ {
proxy_redirect off;
proxy_pass http://127.0.0.1:419;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

将网站目录/v2ray/目录的数据全部转发到本地419端口,之后配置的V2Ray需要监听这个端口。

1
:wq

保存退出后,重启nginx
上图中第一个红框内是证书目录,自己安装nginx的应该这里把自己证书配置正确。

修改nginx.conf

文件位于**/usr/local/nginx/conf/**

打开该文件

1
vi /usr/local/nginx/conf/nginx.conf

在代码**http{}**段里添加一句

1
proxy_intercept_errors on;

保存退出即可

修改vhost文件

文件位于**/usr/local/nginx/conf/vhost/**

打开该文件

1
vi /usr/local/nginx/conf/vhost/www.yourdomain.com.conf

在443端口的配置里加一句

1
error_page 400 = https://www.yourdomain.com/xxxx;

保存退出重启nginx

1
service nginx restart

这里是设置一旦碰到Bad Request错误,会跳转到哪个页面

你可以设置成主页,网盘入口,视频页,图片站都没啥问题,看起来有那么回事就好

三、配置V2Ray

打开V2Ray的config.json文件,一键包安装的一般是位于/etc/v2ray/

1
vi /etc/v2ray/config.json

修改inbound配置(全部配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbound": {
"port": 419,
"listen": "127.0.0.1",
"protocol": "vmess",
"allocate": {
"strategy": "always"
},
"settings": {
"udp": true,
"clients": [{
"id": "1d270be1-812c-460b-ab03-7813ccee5d96",
"alterId": 64,
"level": 1
}]
},
"streamSettings": {
"network": "ws",
"security": "auto",
"wsSettings": {
"connectionReuse": true,
"path": "/v2ray/"
}
}
},
"outbound": {
"protocol": "freedom",
"settings": {}
},
"outboundDetour": [{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"dns": {
"servers": [
"8.8.8.8",
"8.8.4.4",
"localhost"
]
},
"routing": {
"strategy": "rules",
"settings": {
"rules": [{
"type": "field",
"ip": [
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"::1/128",
"fc00::/7",
"fe80::/10"
],
"outboundTag": "blocked"
}]
}
}
}

四、客户端配置

由于V2Ray监听的是本地端口,我们需要连接nginx监听的443端口,并且由于nginx开启了TLS证书,所以客户端配置需要打开TLS选项。

同样的,windows版推荐使用V2RayN,iOS端ShadowRocket最新的TF版已经支持了,商店版还需要等更新,Android手里没机器,没法测试,请自行搜索。配置见下图



MAC下的配置