能否与TLS+CDN配合使用?待实验……

简单地说 HTTP/2 是 HTTP/1.1 的升级版(目前大多数网页还是 HTTP/1.1),点击这里可以直观地体会到 HTTP/2 相比于 HTTP/1.1 的提升(不代表 V2Ray 中 HTTP/2 相对于 TCP 的提升就是这样的)。

V2Ray 的 HTTP/2 还处于测试阶段?

配置

最近几版的 V2Ray 已经开始支持 HTTP/2,可能 v3.12 就支持了,实测 v3.14 能够使用 HTTP/2 了。与其它的传输层协议一样在 streamSettings 中配置。

与其它的传输层协议一样在 streamSettings 中配置,不过要注意的是使用 HTTP/2 要开启 TLS。

服务器配置

{
  "inbounds": [
    {
      "port": 443,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "b831381d-6324-4d53-ad4f-8cda48b30811",
            "alterId": 64
          }
        ]
      },
      "streamSettings": {
        "network": "h2", // h2 也可写成 http,效果一样
        "httpSettings": { //此项是关于 HTTP/2 的设置
          "path": "/ray"
        },
        "security": "tls", // 配置tls
        "tlsSettings": {
          "certificates": [
            {
              "certificateFile": "/etc/v2ray/v2ray.crt", // 证书文件,详见 tls 小节
              "keyFile": "/etc/v2ray/v2ray.key" // 密钥文件
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {}
    }
  ]
}

 

客户端配置

{
  "inbound": [
    {
      "port": 1080,
      "listen": "127.0.0.1",
      "protocol": "socks",
      "domainOverride": ["tls","http"],
      "settings": {
        "auth": "noauth",
        "udp": false
      }
    }
  ],
  "outbound": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "mydomain.me",
            "port": 443,
            "users": [
              {
                "id": "b831381d-6324-4d53-ad4f-8cda48b30811",
                "alterId": 64
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "h2",
        "httpSettings": { //此项是关于 HTTP/2 的设置
          "path": "/ray"
        },
        "security": "tls"
      }
    }
  ]
}

 

服务器反代配置,没找到相关资料……

用nginx的话,需要在编译的时候开启 –with-http_v2_module,配置加入proxy_http_version 2

但问题是:

http2可以让客户端复用连接提高性能,但是不适合用于服务器端proxy,大量的请求复用连接反而会使性能下降。

—— 以前在某篇技术文章看到的,大概是这个意思。→nginx官方issue

所以V2Ray 引入 HTTP/2 的意义到底是什么呢……

用Caddy倒是能直接反代http2,但没我用过,不予置评:

mydomain.me
{
  log ./caddy.log
    proxy /v2ray https://127.0.0.1:5050 {
        header_upstream Host {host}
        header_upstream X-Forwarded-Proto {scheme}
        insecure_skip_verify
    }
}

 


本文被阅读了:2,212次

作者头像
关于  Ailitonia

正因站在了巨人的肩膀上,才越发觉得自己渺小。不求成为巨人,但求与其同行。 把自己所见所闻,记录下来。

→查看所有由Ailitonia发布的文章