以WebSocket TLS Web配置v2ray - glloyd0314/glloyd0314.github.io GitHub Wiki
以WebSocket+TLS+Web配置v2ray
本指南基于Ubuntu 18.04 LTS建立。
-
购买顶级域名(例如
glloyd.com
)和服务器 -
将顶级域名绑定在Cloudflare的个人账户上,设置SSL/TLS的加密模式为完全,开启始终使用HTTPS
-
在Cloudflare里建立并解析一个二级域名(例如
tls.glloyd.com
)到服务器的ip地址,调整代理状态为“仅限DNS”
- 使用ssh进入服务器,执行v2ray官方安装脚本
bash <(curl -L -s https://install.direct/go.sh)
- 如果从github下载v2ray时卡顿严重,则建议手动安装v2ray
首先下载v2ray官方安装脚本
wget -N --no-check-certificate https://install.direct/go.sh && chmod +x go.sh
随后对应Linux系统架构到官方Github页面手动下载对应程序压缩包。例如x64架构,下载v2ray-linux-64.zip后执行以下命令进行本地安装
bash go.sh --local v2ray-linux-64.zip
- 记录安装完成时给出的v2ray端口号与UUID
PORT:42711 // 端口号
UUID:6b745421-de55-48c9-9396-1f15d8c6dab2 // UUID
- 修改v2ray的配置,即修改/etc/v2ray/config.json
首先将config.json清空
echo "" > /etc/v2ray/config.json
用nano打开config.json,写入服务器的v2ray配置
nano /etc/v2ray/config.json
{
"inbounds": [
{
"port": 42711, // 之前记录的端口号
"listen":"127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "6b745421-de55-48c9-9396-1f15d8c6dab2", // 之前记录的UUID
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws",
"headers": {
"host": "tls.glloyd.com" // 建立的二级域名
}
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
- 运行脚本安装bbrplus内核
bash <(curl -s -L https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh)
- 安装完成重启服务器后再次运行脚本,启用bbrplus加速(这里同时重启了v2ray使得修改后的配置能够被加载)
-
在Nginx里建立该二级域名
tls.glloyd.com
的php纯静态网站 -
获取二级域名
tls.glloyd.com
的Let's Encrypt的SSL证书并配置 -
在该网页配置文件的
#SSL-END
一行下面加入
location /ws
{
proxy_pass http://127.0.0.1:42711; // 之前记录的端口号
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
- 修改该网页文件夹内的index.html(可选,修改的是访问该二级域名时的页面)
<!doctype html>
<html>
<body>
<p style="text-align:left">This page is intentionally left blank.</p>
</body>
</html>
- 服务端的v2ray配置完成,在客户端上根据相应参数已经可以连接使用
- 使用ssh进入服务器,执行233boy的v2ray安装脚本
bash <(curl -s -L https://git.io/v2ray.sh)
-
直接选择WebSocket+TLS
-
使用脚本给出的随机端口,输入之前的二级域名
tls.glloyd.com
进行安装 -
选择自动配置tls,脚本将会调用Caddy进行部署(如果之前Cloudflare内对该二级域名的代理状态不是”仅限DNS“的话,这步会出错)
-
手动修改/etc/v2ray/config.json的alterid和streamSettings
nano /etc/v2ray/config.json
"alterid": 64
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ws",
"headers": {
"host": "tls.glloyd.com"
}
}
}
- 手动修改/etc/v2ray/233blog_v2ray_backup.conf
nano /etc/v2ray/233blog_v2ray_backup.conf
alterid=64
- 运行脚本安装bbrplus内核
bash <(curl -s -L https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh)
-
安装完成重启服务器后再次运行脚本,启用bbrplus加速(这里同时重启了v2ray使得修改后的配置能够被加载)
-
服务端的v2ray配置完成,在客户端上根据相应参数已经可以连接使用
由于之前在Cloudflare中对该二级域名的代理状态为”仅限DNS“,
-
对于某些较远或被墙的服务器,此时连接v2ray可能会出现连不上或者速度慢的问题。如果将Cloudflare中的的代理状态切换为”已代理“,则Cloudflare起到CDN的作用,而v2ray的连接和速度通常都会有比较好的改善。
-
对于某些不开Cloudflare CDN也能顺利连接的服务器,可以在比较开与关不同状态下v2ray的连接、速度和丢包情况的好坏之后,自行选择是否使用Cloudflare CDN。
注意Cloudflare中切换成CDN后,需要过一段时间(大约15分钟)才能完全生效。
- 客户端v2ray的各项参数示例
地址 (Address) = tls.glloyd.com // 之前使用的二级域名
端口 (Port) = 443
用户ID (User ID / UUID) = 6b745421-de55-48c9-9396-1f15d8c6dab2 // 之前安装v2ray时的32位UUID
额外ID (Alter Id) = 64
加密方式 (Security) = none
传输协议 (Network) = ws
伪装类型 (Host) = tls.glloyd.com // 之前使用的二级域名
路径 (path) = /ws
底层传输安全 (Security) = tls
允许不安全连接 (AllowInsecure) = true
- 客户端v2ray的config.json配置示例
{
"inbounds": [
{
"port": 1080,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"settings": {
"auth": "noauth",
"udp": false
}
}
],
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "tls.glloyd.com",
"port": 443,
"users": [
{
"id": "6b745421-de55-48c9-9396-1f15d8c6dab2",
"alterId": 64
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"wsSettings": {
"path": "/ws",
"headers": {
"host": "tls.glloyd.com"
}
}
}
}
]
}