宝塔Nginx搭配容器V2Ray教程(WebSocket+TLS+Web)

2022年9月5日 2315点热度

参考文档:

    GitHub:https://github.com/v2fly/v2ray-core
    Docker:https://hub.docker.com/r/v2fly/v2fly-core
    Docker:https://hub.docker.com/r/teddysun/v2ray
步骤预览:
  • 容器.V2Ray配置后端WS协议(使用 WebSocket 是因为搭配 Nginx/Caddy/Apache 只能用 WebSocket)
  • 宝塔.Nginx配置前端HTTPS(443端口)
  • 开启BBR加速
本教程说明:
    本方案的 TLS 的配置是写入 Nginx 配置中,由 Nginx 来监听 443 端口(443 比较常用,并非 443 不可),然后将流量转发到 V2Ray 的 WebSocket 所监听的内网端口(本例是 10000),V2Ray 服务器端不需要配置 TLS,且可以单独直连使用,即配置好后客户端支持两种握手方式:
  1. V2Ray客户端 和 V2Ray服务端 WebSocket (10000 端口)直接握手 。(方式简单,方便排错)
  2. V2Ray客户端 和 Nginx(443 端口)通讯,Nginx 再转发给 V2Ray服务端 WebSocket (1000 端口)握手。(进阶使用)

注意事项:
  • V2现在强制启用了VMessAEAD,V2Ray的 config.json 中 ”alterId”现在必须是“0”。
  • V2Ray 自 4.18.1 后支持 TLS1.3,如果开启并强制 TLS1.3 请注意 v2ray 客户端版本.
  • 请保持服务器和客户端的 wsSettings 严格一致,对于 V2Ray,/ray 和 /ray/ 是不一样的(较低版本的 nginx 的 location 需要写为 /ray/ 才能正常工作)
其他说明:
  • 开启了 TLS 之后 path 参数是被加密的,GFW 看不到;
  • 主动探测一个 path 产生 Bad request 不能证明是 V2Ray;
  • 使用 Header 分流并不比 path 安全, 不要迷信。  
  • 默认支持IPv6。
  • 务必开启BBR(甲骨文Ubuntu),否则Y2B速度只有120K~200K,无法流畅播放1080视频,开启BBR后(无需重启VPS)则Y2B速度提升到400K~1MB,可以流畅播放1080p(2022-09-04 19:56)

开始  

V2Ray配置后端WS协议

    服务器 V2Ray 配置
  • Linux生成随机uuid:cat /proc/sys/kernel/random/uuid
  • 服务端 V2Ray 的配置文件:v2fly.json
    Docker容器配置V2Ray
  • Docker配置文件:v2fly.yml
  • 运行容器:docker-compose -f v2fly.yml up -d
    WebSocket配置完成!此时已经可以使用客户端V2Ray连接使用!
  • V2Ray客户端配置信息范例 WebSocket直连10000端口):

Nginx配置前端HTTPS(443端口)

  • 宝塔中开启网站域名SSL。
  • 将以下代码插入宝塔网站 Nginx配置文件 最末尾的 “}” 符号前:
    Nginx配置完成!至此V2Ray客户端可以使用443端口连接服务。(宝塔修改配置后会自动重启Nginx生效,无需手动重启Nginx)
  • V2Ray客户端配置信息范例 (TLS通过443端口):

甲骨文Ubuntu开启BBR

  • 检查BBR是否开启
  • 启用BBR(无需重启VPS,立即生效)
完成开启加速!

书三拾

不积跬步无以至千里