说明 官方wiki
ws:主要的目的是使用 nginx进行分流,真实的https请求则自动转发到博客端口,而v2ray的ws流量则转发到v2ray的服务端口。
tls:用tls的最主要目的就是通讯加密,保证客户端与服务端的通讯加密,不被窃取,避免中间人攻击。
cdn:内容分发网络,用于中转v2ray服务端的流量,同时隐藏服务端ip
时间校准 服务端和客户端时间相差90s以上就无法使用
#使用命令校准
#查看目前时间
date -R
#修改时间,例如:
sudo date --set="2020-01-22 16:16:23"
配置v2ray服务端
#进入家目录
cd
#下载官方脚本
bash <(curl -L -s https://install.direct/go.sh) <==已被官方弃用,请使用下面的代码
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master
#修改权限
chmod 755 go.sh
#运行脚本
./go.sh
#修改v2ray配置文件
vim /usr/local/etc/v2ray/config.json
#复制以下代码,注释部分替换成自己的
{
"inbounds": [
{
"port": 10000, #可更换
"listen":"127.0.0.1",//只监听 127.0.0.1,避免除本机外的机器探测到开放了 10000 端口
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811", #替换自己UUID
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
#保存文件
:wq!
#启动v2ray
systemctl start v2ray
配置nginx
1.申请SSL证书
2.网站-设置-配置文件修改为以下代码,注释部分自己修改,修改完保存
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/v2ray/v2ray.crt; #填写SSL证书位置
ssl_certificate_key /etc/v2ray/v2ray.key; #填写SSL秘钥位置
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
server_name mydomain.me; #填写网站域名
location /ray { # 与 V2Ray 配置中的 path 保持一致
if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
return 404;
}
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; # 假设WebSocket监听在环回地址的10000端口上 ##与v2ray设置的端口相同
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;
}
}