Qv2ray: 建议增加自定义TLS SNI的功能

Created on 30 Dec 2019  ·  10Comments  ·  Source: Qv2ray/Qv2ray

v2ray内核已经支持自定义TLS SNI,但目前本软件并不支持(i2ray支持)。利用自定义TLS SNI可以在外层TLS和内层websocket中使用不同域名,实现域前置(domain fronting),达到更好的抗封锁效果。

NewFeature Unknown help wanted

Most helpful comment

{
  "inbounds": [
    {
      "port": 1080,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "123.231.132.213",
            "port": 443,
            "users": [
              {
                "id": "42852b93-4138-7232-c603-57f6a8e26712",
                "alterId": 64
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "security": "tls",
        "wsSettings": {
          "path": "/4598hgjrewiphgtrwbh",
          "headers": {
            "Host": "www.123.com"
          }
        },
        "tlsSettings": {
          "serverName": "www.microsoft.com",
          "allowInsecure": false
        }
      }
    }
  ]
}

比如这样,外层的TLS SNI使用域名www.microsoft.com,内层的websocket请求头使用www.123.com,可以在访问www.123.com时让第三者觉得你在访问www.microsoft.com。目前微软的azure cdn支持这种做法,当vps套了azure cdn时可以实现更好的隐藏效果。

All 10 comments

Need more information, cc @DuckSoft thanks.

已经将本 Issue 的一部分拆分到 #208。

v2ray内核已经支持自定义TLS SNI,但目前本软件并不支持(i2ray支持)。利用自定义TLS SNI可以在外层TLS和内层websocket中使用不同域名,实现域前置(domain fronting),达到更好的抗封锁效果。

方便的话,可以提供更多技术信息,以方便开发者进行实现吗?
再或者,若您能提供一个功能性的 Pull Request,我们将感激不尽。

目前只在 v2ray-core 中的 https://github.com/v2ray/v2ray-core/issues/639 搜索到关于 SNI 的名词。
没有文档,没有头绪。我在网上也无法找到关于 SNI 的说明资料。

等待 Issue 作者回应。

那只是一个出站(或者入站) tag ?

{
  "inbounds": [
    {
      "port": 1080,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "123.231.132.213",
            "port": 443,
            "users": [
              {
                "id": "42852b93-4138-7232-c603-57f6a8e26712",
                "alterId": 64
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "security": "tls",
        "wsSettings": {
          "path": "/4598hgjrewiphgtrwbh",
          "headers": {
            "Host": "www.123.com"
          }
        },
        "tlsSettings": {
          "serverName": "www.microsoft.com",
          "allowInsecure": false
        }
      }
    }
  ]
}

比如这样,外层的TLS SNI使用域名www.microsoft.com,内层的websocket请求头使用www.123.com,可以在访问www.123.com时让第三者觉得你在访问www.microsoft.com。目前微软的azure cdn支持这种做法,当vps套了azure cdn时可以实现更好的隐藏效果。

请核收。@lhy0403

ACK, Will do after fixing the Subscription update.
Thanks!

WIP

已在最新的 dev 分支中实现。
图片

Closing.

Was this page helpful?
0 / 5 - 0 ratings