来自: https://www.v2ex.com/t/875975 (已经被审查)
https://github.com/ihciah/shadow-tls
这是做啥的
向中间人表演一次 TLS 握手,之后将流量交给其他连接透明代理掉。
你可以用它来包装任意的 TCP 连接,它的 client 会加一层 TLS 握手头,server 会将这层头剥离。双边部署即可。
啥原理啊
Trojan 将 payload 基于一个伪装的 TLS 连接承载,但它部署起来略微麻烦,主要在于需要证书签发上;并且最近某地开始搞百名单策略,这种方式就不再适用。
那么一个 idea 就是:作为 server 不再自己处理握手,而是将握手流量转发至一个可信的域名上。当握手结束则立刻跳车开始向自己的服务器中转流量。这样中间人看到的就是和 www.gov.xx 的合法握手(观测到的证书也是合法的),而这显然是个白名单域名,这时中间人就会标记这个连接为合法连接。
我咋部署
看项目 Wiki 。推荐使用 docker compose 一键启动。
限制
- 它基于 Monoio 实现,可以利用 io_uring 和 zero_copy 实现高性能数据转发,当前仅支持 Linux 和 macOS 。
- 对于握手后的数据没有做封装。
没有评论:
发表评论