利用云IDE平台Cloud9实现websocket tunnel
Cloud9 IDE是一个基于Node.JS构建的JavaScript程序开发Web IDE, 其官方(https://c9.io)提供的云IDE平台,提供了完整的Ubuntu Linux Docker容器,并且用户具有sudo权限。
在2013年,增加了对websocket的支持,详见官方blog: https://c9.io/site/blog/2013/05/native-websockets-support/
这次写的比较急,我获知这个方法后马上试验了一下,发现速度很快!在电脑和安卓手机都科学上网成功后,我就马上写出来了。更详细的教程我会慢慢补充!
因为Cloud9限制变得非常多,做SS价值不大了,建议新手小白别搞了。
原理
在Cloud9的平台中建立websocket服务器,将数据通过websocket传输给客户端实现一个tunnel。
步骤
注册
进入https://c9.io(被墙)注册帐号,需要邮箱激活认证。
工作空间
登录后,进入dashboard, 会有一个默认的demo-project, 点击START EDITING进入。
进入到工作空间后,默认会有一个命令行窗口在下方
部署服务器
以下命令均在工作空间中的终端中操作
wget https://bintray.com/artifact/download/ginuerzh/gost/gost_1.3_linux_amd64.tar.gz
tar zxf gost_1.3_linux_amd64.tar.gz
cd gost_1.3_linux_amd64/
./gost -m=aes-256-cfb -p=123 -ws (注意 ./gost前面的 '.') (注:执行完这一步后,命令行是没有任何输出的,此属正常)123是密码
这个时候websocket服务器就已经跑起来了
在浏览器中输入projectname-username.c9.io测试一下,会显示Bad Request,终端中也会显示websocket: version != 13,这个时候就表明websocket已经可用
这里的projectname为工程名,在这里就是demo-project;username是注册时填写的username,这里是gostwebsocket,完整的websocket地址为: demo-project-gostwebsocket.c9.io,你只要把这句里的gostwebsocket替换成你的username,也就是用户名就好了。
比如我的username(用户名)是doubi,那就是demo-project-doubi.c9.io
注:c9.io的服务不是永久在线,当页面关闭后会持续在线两天,之后需要重新打开页面,如果gost没有运行,需再次运行。
客户端连接
在https://bintray.com/ginuerzh/gost/gost/view上下载对应平台的版本压缩包(mac下装gost_1.1_darwin_amd64.zip)
解压后运行 (windows 去掉前面的’./’):
./gost -L :8899 -S demo-project-用户名.c9.io -m=aes-256-cfb -p=123 -ws (请替换-S参数为你自己的地址)123是密码
windows命令行:
Windows脚本:
gost.bat 脚本模板文件下载: https://drive.google.com/file/d/0B9u61oZtw_qbdjBSdnBES25IR1E
百度网盘(如果看不懂就吧小白版和gost都下载下来)密码是群号码:365936604
小白版的使用方法:
首先按上面的步骤运行服务端,然后运行程序,点启动,然后等1秒再点启动代理,然后就好了,如果不想用了就右键托盘图标取消启动系统代理!
注意:无论哪种方法来连接,都是全局代理,而我写的这个小白版也只是便于系统代理的设定,不用每次启动关闭都要手动设置代理!
使用方法:
将脚本文件gost.bat放到解压后的gost目录( gost_1.3_windows_386或gost_1.3_windows_amd64)下,修改脚本文件中的命令参数(将参数中的XXX替换为你的用户名),直接执行。
如果处在http代理环境中(代理要支持websocket),可增加上层代理(-P参数):
./gost -L :8899 -S demo-project-用户名.c9.io -P your_proxy_ip:port -ws
gost命令具体参数说明:
./gost -h
最后设置好浏览器代理(http或socks5均可)就可访问了, 代理的服务器: localhost, 端口8899 (-L参数设置)。
Tip: 访问http://whatismyip.com/查询IP (可以看到cloud9使用的是google的云服务,相当于我们直接连接到了google的网络了):
Android设置
gost支持作为shadowsocks服务器运行(ss参数),这样就可以让android手机通过shadowsocks(影梭)使用代理了。
相关参数:
-ss 开启shadowsocks模式
-sm 设置shadowsocks加密方式(默认为rc4-md5)
-sp 设置shadowsocks加密密码(默认为[email protected])
当无-ss参数时,-sm, -sp参数无效。
以上三个参数对服务端无效。
相关命令:
服务端:
无需特殊设置
shadowsocks模式只与客户端有关,与服务端无关。
./gost -L :8899 -S demo-project-你的用户名.c9.io -ws -sm=rc4-md5 [email protected] -ss
Win系统不需要“./”
加密方式默认为rc4-md5 (sm参数设置),密码默认为[email protected](sp参数设置)
在手机的shadowsocks软件中设置好服务器(运行gost电脑的IP),端口(8899),加密方法和密码就可以使用了。
Tip: 注:shadowsocks模式与正常模式是不兼容的,当作为shadowsocks模式使用时(有-ss参数),浏览器不能使用。
加密方式说明
websocket加密功能需要客户端和服务端gost版本都为1.2版及以上。
目前支持的加密方法
tls, aes-128-cfb, aes-192-cfb, aes-256-cfb, des-cfb, bf-cfb, cast5-cfb, rc4-md5, rc4, table
Client端设置
Client端通过-m参数设置加密方式,默认为不加密(-m参数为空)。
如果设置的加密方式不被支持,则默认为不加密。
当设置的加密方式为tls时,-p参数无效。
当设置的加密方式为非tls时,通过-p参数设置加密密码,且不能为空,默认密码为[email protected];-p参数必须与Server端的-p参数相同。
Server端设置
Server端通过-m参数设置加密方式,默认为不加密(-m参数为空)。
如果设置的加密方式不被支持,默认为不处理 (此情形被视为错误,须用户自行改正)。
如果没有设置加密方式(-m参数为空),则由client端控制加密方式,即client端可通过-m参数指定Server端使用哪种加密方式。
如果设置了加密方式(-m参数不为空),client端必须使用与Server端相同的加密方式。
当设置的加密方式为tls时,-p参数无效;-key参数可手动指定公钥文件,-cert参数可手动指定私钥文件,如果未指定,则使用默认的公钥与私钥。
当设置的加密方式为非tls时,-key,-cert参数无效;通过-p参数设置加密密码,且不能为空,默认密码为[email protected]。
转载自:https://docs.google.com/document/d/1Wxwl4HrvIpie9xIRRMzasdW_HAuthBFjqL_hQCKBIfE/edit#
转载请超链接注明:逗比根据地 » 『失效』利用云IDE平台Cloud9实现科学上网
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!