在GAE建立tor meek 中继
最近在寻找一些备用方案以备不时之需。目前在ipv6网络上,tor可以直接用fte-ipv6,似乎在采用国外ipv6 dns服务器时仍然可以有效的通过meek 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com类似设置使用tor。但今天才明白meek-reflect.appspot.com做为一个公众的类似 中继 服务器的角色,当然会受客户端数量影响,所以也许架设在自己的gae网络上,自己一个人用才有一定的保障。今天简单的测试了一下大白天时勉强youtube 320p,晚上基本没戏,但至少网页浏览非常顺畅。不像前几天才发现的一个赛风通过3proxy所谓的借助CDN加速方法,网络好的时候白天看1024p都没问题,差得时候不断的断线没流量。。。
关于windows环境在gae安装meek可以看这里,也太简单了点
https://gitweb.torproject.org/pluggable-transports/meek.git/tree/appengine/README
1,获得python https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi
2,将python安装路径加入到 系统变量 path C:\Python27 类似下面这样的
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27
3,打开 cmd ,尝试运行 python,如果有输出就成功安装python。
4,获得 gae go sdk https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Go
5,获得 tor meek gae 布署源码 https://gitweb.torproject.org/pluggable-transports/meek.git/tree/appengine
6,在go_appengine建立myapp目录,保存上面下载的源码app.yaml reflect.go
7,修改app.yaml application: meek-reflect,meek-reflect改为你申请的appid
8,上传代码到gae空间,go_appengine/goapp deploy myapp
9,然后在tor设置类似的参数就可以了meek 0.0.2.0:1 url=https://meek-reflect.appspot.com/ front=www.google.com
这样就完成在自己的gae空间布署tor meek,避免公众服务器的缓忙。
==========================================================================
关于meeksocks-py的布署
利用Google App Engine加速网络连接
http://www.scutlaoyi.tk/webTool005-speed-up-network-by-gae.html
上面的文档是最早搜到的有关tor meek的文档,但是还是有些理解上的误区,首先这个系统是独立的,它并不能通过tor的客户端进行连接,到这里也许大家就没有看下去的必要了。也许通过gae来中继可能有速度上的优势,必竟服务器端是自己的vps,相对安全点。
获得源码
git clone https://github.com/yinghuocho/meeksocks-py
git clone https://github.com/yinghuocho/gosocks
然后将gosocks目录移动到meeksocks-py目录下,
在centos下运行会有pystone找不到的提示,通过yum install python-test就可以了,其它都可以用pip install 命令安装缺少的模块
python server.py vps_ip 8081 127.0.0.1 1081
python client.py 127.0.0.1 8975 http://vps_domain:8081/,http://vps_domain:8081/,stream
偶没搞清楚stream和relays参数的区别
测试,通过观察终端数据变化就知道是否生效。
curl -k -o ./server_list –socks5 127.0.0.1:8975 https://psiphon3.com/server_list
gae的布署,除了要修改app.yaml的appid,还要修改reflect.go
将forwardURL = “https://meek.bamsoftware.com/”改为forwardURL = “http://vps_domain:8081/”
上传代码到gae空间,go_appengine/goapp deploy myapp
客户端连接参数
python client.py 192.168.8.253 8975 https://www.google.com/,appid.appspot.com,stream
官方提供了一个连接的客户端https://github.com/yinghuocho/firefly-proxy
只要参照修改meek-relays.txt改为自己的服务器,并设置文件以只读属性避免被修改,这样使用自己的服务器就相对安全点。
==========================================================================
简单记录一下在openwrt下面的一些过程,最终还是没成功郁闷。
在尝试pip install gevent时会提示
Downloading/unpacking greenlet>=0.4.7 (from gevent)
Downloading greenlet-0.4.9.tar.gz (54kB): 54kB downloaded
Downloading/unpacking gevent
Downloading gevent-1.0.2.tar.gz (1.7MB): 1.7MB downloaded
creating build/temp.linux-mips-2.7/gevent
ccache_cc -fno-strict-aliasing -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -DNDEBUG -fno-inline -DNDEBUG -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -fPIC -DLIBEV_EMBED=1 -DEV_COMMON= -DEV_CLEANUP_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_PERIODIC_ENABLE=0 -Ibuild/temp.linux-mips-2.7/libev -Ilibev -I/usr/include/python2.7 -c gevent/gevent.core.c -o build/temp.linux-mips-2.7/gevent/gevent.core.o
unable to execute ‘ccache_cc’: No such file or directory
error: command ‘ccache_cc’ failed with exit status 1
—————————
按网上的提示
这个问题我在一开始的也是这样的,困扰了我一个多月,使用官网的其他SDK也一样(12.09、10.03.1)。反复对比测试(C++好用python无法使用,偶然发现问题在哪里)。后来调整思维重新编译内核和SDK配置package,再去编译gevent就过了,wallproxy的makefile没有问题,官网论坛上的1.0rc2的makefile也没有问题(注意顺序greenlet、libevent2、gevent)。顺便咨询:在编译官网的内核及SDK及全部package包(网上的中文教程只说了内核,没有说扩展的ipk包的问题)其实都无法完整编译(不得其解,从官方的SDK里复制.config配置也不行)。不知道官网的那些ipk和SDK都是怎么使用官网SDK里的.config 配置编译出来的?我的环境ubuntu 12.04 64位。
在cc rc3编绎这个gevent可没这么简单。本来以为才3个小包一会儿的事情,结果。顺便提一下当时没注意其实只缺少gevent这个包,所以不知道一开始编绎这个包是否就能简单通过了。
首先在sdk环境通过
./scripts/feeds update -a #更新makefile文件
原则就是保持版本一致,尽量用官方的makefile,然后注意版本号以避免依赖问题,也正是由于依赖问题,这么一个小小的gevent包竟然要编译一堆的文件。
1,需要预先编译sqlite3 gdbm db47
-注意在centos7下面gdbm会报
*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19
修改build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/gdbm-1.11/po
Makefile
GETTEXT_MACRO_VERSION = 0.19
-注意编译db47报错
Package libdb47 is missing dependencies for the following libraries:
libpthread.so.0
相应的依赖支持都在staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/pkginfo
grep libpthread.so.0 “*.provides”
修改makefile,添加+libpthread就解决了。
define Package/libdb47
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+libxml2 +libpthread
TITLE:=Berkeley DB library (4.7)
2,编译python
3,编译greenlet libevent2 gevent
-https://wallproxy.googlecode.com/files/sdk_mf.zip
-http://www.right.com.cn/forum/thread-134146-1-1.html
无奈,折腾半天还遇到别的包需要编译。。。。放弃