Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能支持多SNI多代理后端吗? #77

Open
ArchGuyWu opened this issue Mar 2, 2023 · 10 comments
Open

能支持多SNI多代理后端吗? #77

ArchGuyWu opened this issue Mar 2, 2023 · 10 comments

Comments

@ArchGuyWu
Copy link

ArchGuyWu commented Mar 2, 2023

通过不同的SNI把流量送去不同代理后端进行处理,比如这样可以使在同一端口下,有AES硬件加速和无AES硬件加速的设备在使用shadowsocks代理后端时同时获得最佳性能

@ayanami-desu
Copy link

请看wiki,应该是支持的

@ArchGuyWu
Copy link
Author

@ayanami-desu 多SNI是支持的,但不支持多后端

@ihciah
Copy link
Owner

ihciah commented Mar 3, 2023 via email

@ArchGuyWu
Copy link
Author

好的,那该怎么填写呢?

@ihciah
Copy link
Owner

ihciah commented Mar 8, 2023

大概这种格式: cloudflare.com:1.1.1.1:443;captive.apple.com;cloud.tencent.com

host 留空则直接使用原域名;port 留空则默认 443。最后一个配置会同时被视作 fallback。
如果不想预定义 mapping 并接受滥用风险,可使用新版本新增的 wirdcard-sni 功能,具体使用方式和风险请 --help

@ArchGuyWu
Copy link
Author

大概这种格式: cloudflare.com:1.1.1.1:443;captive.apple.com;cloud.tencent.com

host 留空则直接使用原域名;port 留空则默认 443。最后一个配置会同时被视作 fallback。 如果不想预定义 mapping 并接受滥用风险,可使用新版本新增的 wirdcard-sni 功能,具体使用方式和风险请 --help

但我是想分流到不同ss代理

@liqsliu
Copy link

liqsliu commented Apr 10, 2023

不行的话,可以在前面套个nginx

@ihciah
Copy link
Owner

ihciah commented Apr 10, 2023

目前不支持分流到多个ss。非要弄的话可以级联的方式部署多个shadowtls,不过会有点影响性能。
(部署nginx对ss分流无效)

@love4taylor
Copy link

shadow-tls => nginx 真实 IP 如何处理呢,套 CF 的倒是能通过 http 头拿,直接解析的站就没什么好办法了

@ihciah
Copy link
Owner

ihciah commented May 16, 2023

shadow-tls => nginx 真实 IP 如何处理呢,套 CF 的倒是能通过 http 头拿,直接解析的站就没什么好办法了

确实。。我能想到的有两个办法:

  1. IP_TRANSPARENT: 连接本地 ss 时 bind 请求方的 ip
  2. 走 Proxy Protocol 传递连接元信息

这两个方案我没做详细的调研,实施起来应该都有一定局限性:第一个方案仅限 linux 且如果对于 ss 部署在非本地的情况还需要额外处理路由规则;第二个方案仅对支持 Proxy Protocol 的特定后端生效。

如果只是为了事后追查,简单起见也可以翻 log 去 match 一下2333

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants