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 了。