357全球通 357全球通

v2ray配置WebSocket+TLS+Web+CDN(支持Nginx或Caddy转发)

in 默认分类 read (7147) 文章转载请注明来源!

如果要用CDN先看下文末。

安装

这里我用的官方原版一键脚本

bash <(curl -L -s https://install.direct/go.sh)

安装之后,正常情况下v2ray自动启动

服务器配置

这次 TLS 的配置将写入 Nginx / Caddy / Apache 配置中,由这些软件来监听 443 端口(443 比较常用,并非 443 不可),然后将流量转发到 V2RayWebSocket 所监听的内网端口(本例是 12345),V2Ray 服务器端不需要配置 TLS
服务器 V2Ray 配置

{
  "inbounds": [
    {
      "port": 12345,
      "listen":"127.0.0.1",//只监听 127.0.0.1,避免除本机外的机器探测到开放了 12345 端口
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "b370881d-6324-4d53-ad4f-8cda48b13578",
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
        "path": "/ws"
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

Nginx 配置

server {
  listen  443 ssl;
  ssl on;
  ssl_certificate       /etc/v2ray/v2ray.crt;
  ssl_certificate_key   /etc/v2ray/v2ray.key;   //这俩证书路径改成你的
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  server_name           mydomain.me;  //域名改成你的
        location /ws { # 与 V2Ray 配置中的 path 保持一致
        proxy_redirect off;
        proxy_pass http://127.0.0.1:12345;#假设WebSocket监听在环回地址的12345端口上
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        }
}

如果用了宝塔自动申请证书,那么只需并在Nginx里最后一个 }前面填入

         location /ws {   #/ws为v2ray路径,随便填写比如/v2ray/
             proxy_redirect off;
             proxy_pass http://127.0.0.1:12345; #修改自己v2ray服务端口
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_set_header Host $http_host;            
          }

Caddy 配置

#因为 Caddy 会自动申请证书并自动更新,所以使用 Caddy 不用指定证书、密钥。
mydomain.me
{
  log ./caddy.log
  proxy /ws localhost:12345 {
    websocket
    header_upstream -Origin
  }
}

如果不成功,配置上邮箱自动签证书

mydomain.me {
    tls 89816825856@gmail.com //邮箱改成你的
    gzip
timeouts none
    proxy /ws 127.0.0.1:12345 {
        without /ws
        websocket
    }
}

或者用caddy直接搞个反代

mydomain.me {
    tls 89816825856@gmail.com
    gzip
timeouts none
    proxy / https://www.centos.org {    //把这个网址换成你想反代的地址
        without /ws
    }
    proxy /ws 127.0.0.1:12345 {
        without /ws
        websocket
    }
}

Nginx一样可以配置反代,可以用宝塔面板很方便,就不介绍了。

CND

当然用CloudFlare了,其实实现TLS最简单的办法也是CloudFlare
注意:
1、确保域名已经可以在 Cloudflare 正常使用
2、在 Cloudflare 的 Overview 选项卡可以查看域名状态,请确保为激活状态,即是: Status: Active
3、在 DNS 选项卡那边添加一个 A 记录的域名解析,假设你的域名是 mydomain.me,并且想要使用 vpn.mydomain.me 作为翻墙的域名
那么在 DNS 那里配置,Name 写 vpn,IPv4 address 写你的小鸡的 IP,务必把云朵点灰,然后选择 Add Record 来添加解析记录即可
(如果你已经添加域名解析,请务必把云朵点灰,即是 DNS only)
4、当你的V2ray搭建好,nginx或者caddy配置好后,设置 Crypto 和 开启中转

确保 Cloudflare 的 Crypto 选项卡的 SSL 为 Full
并且请确保 SSL 选项卡有显示 Universal SSL Status Active Certificate 这样的字眼,如果你的 SSL 选项卡没有显示这个,不要急,只是在申请证书,24 小时内可以搞定。

5、在 DNS 选项卡那里,把刚才点灰的那个云朵图标,点亮它,一定要点亮一定要点亮一定要点亮

云朵图标务必为橙色状态,即是 DNS and HTTP proxy(CDN)
参考文章:V2ray白话文教程之WebSocket+TLS+Web
使用 V2Ray 的 WebSocket 传输协议 + Cloudflare 拯救被墙的 IP

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:http://www.357global.com/archives/699.html (转载时请注明本文出处及文章链接)

v2ray
发表新评论
PREVIOUS NEXT
雷姆
拉姆