10

ShadowTLS:更好用的 TLS 伪装代理

 1 year ago
source link: https://www.v2ex.com/t/875975
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

https://github.com/ihciah/shadow-tls

这是做啥的

向中间人表演一次 TLS 握手,之后将流量交给其他连接透明代理掉。

你可以用它来包装任意的 TCP 连接,它的 client 会加一层 TLS 握手头,server 会将这层头剥离。双边部署即可。

Trojan 将 payload 基于一个伪装的 TLS 连接承载,但它部署起来略微麻烦,主要在于需要证书签发上;并且最近某地开始搞百名单策略,这种方式就不再适用。

那么一个 idea 就是:作为 server 不再自己处理握手,而是将握手流量转发至一个可信的域名上。当握手结束则立刻跳车开始向自己的服务器中转流量。这样中间人看到的就是和 www.gov.xx 的合法握手(观测到的证书也是合法的),而这显然是个白名单域名,这时中间人就会标记这个连接为合法连接。

看项目 Wiki 。推荐使用 docker compose 一键启动。

  1. 它基于 Monoio 实现,可以利用 io_uring 和 zero_copy 实现高性能数据转发,当前仅支持 Linux 和 macOS 。
  2. 对于握手后的数据没有做封装。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK