Skip to content
ssrlive edited this page Aug 5, 2019 · 101 revisions

索引

序言

好吧! 也许到时候公布新功能了. 关心这个项目的人, 绝大部分懂中文, 咱也就不装了, 不飙英文了, 累.

据说 SSSSRGFW 精准识别了, 有6月初的梯子大屠杀为证, 咱也没有心思去辨别真伪了.

因为俺正在憋大招, GFW 不是老在搞 深度包检测(DPI) 吗? SS/SSRGFW 在这一点上斗了好多年, 我加点伪装, 你加大侦测力度, 我再加点混淆, 你再加点AI识别算法, 此消彼长, 犬牙交错, 无穷无尽. 俺厌倦透了.

咱不装了, 咱来真的, 我们给 GFW 带来全新礼物, 给 SSR 添加了 over TLS 特性, 用真的 HTTPS 数据包翻墙! 您 GFW 慢慢算去!

在正式开始前, 介绍一个概念: 反向代理.

反向代理

反向代理Reverse Proxy)是指, 服务器 根据 客户端 的请求,从其关联的一组或多组后端服务器(如 Web 服务器)上获取资源,然后再将这些资源返回给 客户端客户端 只会得知 反向代理 服务器的 IP 地址,而不知道在 代理服务器 后面的 服务器 集群的存在。

前向代理不同,前向代理作为 客户端 的代理,将从互联网上获取的资源返回给一个或多个的 客户端服务端(如Web服务器)只知道代理的 IP 地址而不知道 客户端IP 地址;而 反向代理 是作为 服务端(如Web服务器)的代理使用,而不是客户端客户端 借由 前向代理 可以间接访问很多不同 互联网服务器(集群)的资源,而 反向代理 是供很多 客户端 都通过它间接访问不同 后端服务器 上的资源,而不需要知道这些 后端服务器 的存在,而以为所有资源都来自于这个 反向代理 服务器

bbbbb

举个例子,某用户访问 http://www.example.com/readme ,但是 www.example.com 上并不存在 readme 页面,它是偷偷从另外一台服务器上取回来,然后作为自己的内容返回给用户。但是用户并不知情这个过程。对用户来说,就像是直接从 www.example.com 获取 readme 页面一样。这里所提到的 www.example.com 这个域名对应的 web 服务器 就设置了 反向代理 功能。

反向代理 在现时的互联网中应用非常广泛。

SSR over TLS 原理

SSR over TLS (SSRoT) 就是直接利用了 反向代理, 在现代 web 服务器( 比如 nginx, caddy, apache 等)上, 添加一条设置, 当 SSR 客户端向 web 服务器 请求特定资源时, web 服务器 将这个请求直接转发到 SSR 服务器, SSR 服务器再将这条请求以约定算法解包后发送到 目标网站. 见下图.

Untitled

我们的目的是为了避开 GFW 的审查,当然不能明晃晃地使用明文传输,必须使用 HTTPS 协议进行加密通讯, 我们此前的努力就是伪装成正规的 HTTPS 协议等, 这次我们不装了, 就使用堂堂正正的 HTTPS 协议, 与真正的带域名 和 网站数字安全证书的 web 服务器网站通讯, 这样, 你中共没办法了吧?

当然, 中共也不是完全没办法, 有几个:

  1. 宣布 HTTPS 协议为反党反社会主义的反动协议, 必须坚决予以取缔. ---- 你认为会有这么一天吗? 我认为不会.
  2. 加强 GFW 的识别算法, 当然努力的的方向不是 深度包检测(DPI), 而是 域名 字串特征 和 网站 内容判别了.

比如域名里出现了 FuckCCP 字样, GFW 肯定会判定为应该封锁的网站. 又如, 如果你网站只是简单的一个示例网页, 却每天有大量数据交换, 那就可以判定为翻墙站点了.

因此, 稳妥的做法是, 为你的翻墙站点, 注册一个 爱党爱国 的域名, 然后在这个网站上放置不算太少的 颂扬 中共 的内容, 视频 等, 或者干脆就是 娱乐至死 的游戏评测视频以及 吃喝玩乐 资讯, 等等. 这就伪装得差不多了, GFW 即使启用超强 AI 引擎运算, 应该也判别不出你到底在干嘛.

这项技术对于 外国 在华 记者 更是重大利好, 不用费劲吧啦地到处找翻墙梯子, 直接在 于中国可访问的 境外自家网站上的 web 服务器上添加一个 反向代理 特殊条目, 单独部署一 SSRoT 服务器, 就可通过 SSRoT 客户端访问墙外内容了.

SSRoT 技术概览

  1. 客户端是一个标准的 SOCKS5 服务器, 客户端 与远端 web 服务器已 HTTPS 协议通讯, 通讯内容是协商升级成 WebSocket 协议, 协商成功后, 就以 WebSocket 协议进行基于长连接的数据交换, 直到某一方关闭连接.
  2. 交换的数据可以经过 SS/SSR 加密, 甚至不用加密, 因为 HTTPS 协议传输内容, 包括请求路径URL, 数据等, 都是经过强加密的, GFW 破解不了, 即便 GFW 牛逼到真能破解了, 那 HTTPS 协议本身也就该升级换代了.
  3. 充当 反向代理 的 web 服务器必须有正式的域名, 有真正的数字证书. 这些可以通过 freenom.comletsencrypt.org 免费付费 获得.
  4. 远端 反向代理 条目 URL 字串必须足够复杂, 足够随机, 以增加 GFW 穷举法猜算出来的难度. 一个随机生成的 UUID 字串就足够 GFW 喝一壶的, 况且我们也可以随时更换.
  5. 远端 反向代理 服务器采用市面上常见的 web 服务器软件就可以, 没特殊要求.
  6. 反向代理 web 服务器进行通讯的 SSRoT 服务器也是基于 WebSocket 协议, 然后它将数据转发到用户试图访问的 目标网站.

Welcome to the shadowsocksr-native wiki!

Server Logic

Client Logic

Clone this wiki locally