V2Ray 使用 WebSocket 传输协议,之后使用 Nginx 或 Caddy 实现 TLS,然后将 WebSocket 流量转发到 V2Ray,实现 WebSocket + TLS 传输协议。

前言

V2Ray 可直接在配置文件中实现 WebSocket + TLS 传输协议,但是也许会因为某些因素,例如 VPS 上要跑一个小博客(已启用 HTTPS),那么很有可能由于 TLS 的原因会跟 WEB 程序在监听端口时发生冲突,这显然不是我们想要的。
所以如果我们想要实现 WebSocket + TLS ,并且还能愉快的跑着一个小博客,那么就要将 TLS 部分放到 WEB 程序里面去实现。

备注

此教程是写给使用了本站提供的 V2Ray 一键安装脚本,并且在选择 WebSocket + TLS 传输协议的时候没有打开自动配置 TLS 的大佬看的。
如果你并没有使用本站提供的 V2Ray 一键安装脚本,所以此教程仅可当作参考。

为了不影响你的现有的配置,下面教程均以你重新配置一个重新的域名为前提

使用 Nginx 实现 TLS

在 Nginx 配置里面增加一个 server

server {
  listen  443 ssl http2; # 如果你木有添加 HTTP2 模块,请删除 http2
  server_name           233blog.com; # 将 233blog.com 修改成你的域名
  ssl_certificate       /home/ssl/233blog.com.crt; # 证书
  ssl_certificate_key   /home/ssl/233blog.com.key; # 密钥
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
        location / {
        proxy_pass http://localhost:2333; # 2333 为 V2Ray 端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
}

输入下面的命令可查看到 V2Ray 的端口 (仅可用于使用了本站提供的一键安装脚本)

v2ray info

配置完成后请重启 Nginx

使用 Caddy 实现 TLS

在 Caddyfile 文件添加如下内容

233blog.com {
    tls myemail@gmail.com
	proxy / localhost:2333 { 
		websocket
	}
}

将 233blog.com 修改成你的域名,那个邮箱的话随便修改… 2333 修改为 V2Ray 端口。

输入下面的命令可查看到 V2Ray 的端口 (仅可用于使用了本站提供的一键安装脚本)

v2ray info

配置完成后请使用命令:service caddy restart 重启 Caddy

结束

其实…最简单的方法实现 TLS 莫过于使用 CloudFlare 了。