打造自用的Meek中继反射器

因meek技术救活了tor美博园转载几篇关于meek的技术探讨文章,供网友研究开发meek技术之用。

背景

Tor的Meek混淆插件最近比较好用, 由于Amazon、GAE和Azure上都有现成的中继装置, 直接让Tor启用Meek连接即可。

不过博主喜欢折腾, 用现成的东西感觉不是那么爽, 因此多方尝试折腾出一个自用的Meek反射器, 不用每次走Amazon的渠道了。

Meek基本原理介绍

首先启用了Meek的Tor链路是这样的状态:

本地Tor客户端->本地Meek客户端->服务器端Meek->服务器端Tor网桥

由本地的Meek客户端将Tor的数据包封装并发送到服务器端的Meek, 服务器端解析并将数据塞给服务器端的Tor, 由服务器端的Tor处理数据。

从本地Meek到服务器端的Meek连接便是Meek技术的核心所在, 即所谓的“Domain Fronting”技术。

本地Meek客户端->Google云服务器->GAE上的Meek服务器

现有Meek网桥的简单分析

(以下内容为博主个人猜想,可能有重大谬误...)

博主研究了Meek-Server的代码后发现, 需要在服务器搭建Tor并配置为网桥之后, 再让Meek-Server在Tor的前端接入Tor的流量。

那么就奇怪了, 难道所有的云服务器端都是部署了Tor的中继服务器?

查看Meek-client的Git仓库, 可以看到有多个版本的Server端部署代码, 包括AppEngine、php甚至是nginx的配置。

博主懂得一点php, 所以斗胆观摩了一下php的代码, 发现内容上其实只是把接收到的数据包转发给一个特定的地址。

再继续观摩AppEngine和nginx的配置, 发现它们的思路都是一样的, 转发到下面这个地址:

http://meek.XXXX.com:1234

于是博主猜测真正的情况是这样的: 其实GAE、Azure和AWS上现有的Meek中继都不是真正处理数据的服务器, 它们只是起到一个反射器(reflector)的作用, 将收到的数据包转发到真正的Meek服务器上, 上述的地址就是真正的Meek服务器。

个人反射器的搭建

搞定了原理之后, 就可以着手打造自己的Meek中继反射器了。

其实方法很简单, 照着仓库里的README把东西部署上去即可。

例如php版本需要一个能执行CURL的php空间, 把代码上传到空间上, 记录下URL, 就可以配置本地的torrc进行使用了。

这里假设配置好之后Internet上访问的URL是这个:

http://foo.com/bar.php

那么在torrc里的配置应该是这样的东西:

Bridge meek 0.0.2.0:1 url=http://foo.com/bar.php

这里的更改让Meek把数据包发送到以上的地址, 由服务器端的php代码(或者是nginx的反向代理)转发请求到真正的Meek服务器上。

没有front是因为这里不需要Meek的“domain fronting”技术, 本来这个地址就没有被干掉, 此外, 如果这个域名被干掉的话, 那么用这个域名搭建的任何东西也都没什么意义。

收益分析

基于自定义URL的Meek反射器可以提供比较稳定的连接, 毕竟不是大量使用的话不会受到干扰或者封禁。

另外就是树大招风, 像Google这种整个玉米被搞死的情况Meek也是无能为力的。 对于自定义URL则风险比较小。

当然这么做的一个坏处是把Meek用歪了, 废掉了Domain Fronting技术, 只是纯粹的做一个数据包的转发。

管它呢, 技术还是要能够实现功能最重要~

网 友 留 言

1条评论 in “打造自用的Meek中继反射器”
  1. abcd says:

    头像测试

这里是你留言评论的地方

5 + 6 =

【您可以使用 Ctrl+Enter 快速回复】

Copyright © 2007 - 2017 , Design by 美博园. 版权所有. 【回到顶部】