科学上网

SSH隧道翻墙的原理和实现

来源:http://www.pchou.info/linux/2015/11/01/ssh-tunnel.html跟朋友闲聊说到翻墙和SSH隧道,刚开始我对SSH的理解就是远程连接,然而SSH隧道并非那么简单,利用SSH隧道可以干很多事,翻墙就是其中之一。VPN vs SSHVPN和SSH隧道翻墙有如下区别:VPN的设置是全局的,即电脑一旦挂上VPN,所有的联网程序都将自动使用VPN;而建立好SSH隧道后,需要程序设定使用隧道才会使用隧道联网如果使用商用的VPN一般要花钱,如果自己搭,VPN的搭建难度大于SSH隧道。因为SSH隧道只要一台可以SSH的服务器即可,根本不需要在服务器上配置任何东西SSH动态绑定这是SSH翻墙的基本原理:利用SSH动态绑定的功能。那么何谓SSH动态绑定呢?动态绑定是SSH端口转发功能的一种形式,借用一张图:首先,墙内的客户机跟墙外的代理服务器,建立好SSH连接,并设定动态绑定此时墙内客户机上的SSH会监听本地的一个端口7001客户机上的程序,将对www.youtube.com:80的请求告知7001端口的SSH,SSH将此请求通过SSH加密连接发送到墙外服务器的SSH上由于建立的动态绑定,服务器会将www.youtube.com:80的请求发送给www.youtube.com上的80端口,并在收到回复后,通过原路返回给客户机的SSH,客户机的SSH返回给应用程序在这里SSH客户端已经不仅仅是个客户端了,它同时打开了7001端口侦听本机应用程序的请求。这是SSH跟传统用法最大的区别。而服务端的SSH也不仅仅是处理客户端的请求,而是将请求转发到对应的主机和端口,这里的动态二字体现在服务端的SSH的转发目标是不固定的,是根据客户端的请求而定的。那么如何让应用程序知道应该把请求发送给本机的7001端口呢?SOCKS代理答案就是SOCKS代理。理解SOCKS代理其实非常简单。HTTP代理都用过吧,浏览器其实也是支持SOCKS代理的,玩法几乎一样,只是SOCKS代理通常不限制端口,所谓来者不拒。实际上SOCKS代理普遍被许多应用程序支持:QQ、浏览器、MSN…所以在上述的模型中,客户机的SSH实际上就是实现了一个SOCKS代理的角色,这个SOCKS代理侦听了7001端口,并将所有的请求都代理给服务器的SSH,并利用SSH动态绑定,让服务器进一步转发请求。SSH隧道的搭建那么我们来看看搭建一个SSH隧道翻墙,究竟有多简单。首先你需要有一台支持SSH的墙外服务器,此服务器啥都不需要,只要能SSH连接即可。客户端SSH执行如下命令:ssh -D 7001 username@remote-host上述命令中-D表示动态绑定,7001表示本地SOCKS代理的侦听端口,可以改成别的,后面的username@remote-host就是你登录远程服务器的用户名和主机。当然,这个命令后会提示输入密码,就是username这个用户的密码(除非你配置了SSH公钥认证,可以不输入密码)这样隧道就打通了!是不是超级简单。最后在浏览器或者其他应用程序上设置SOCKS代理(设置v4的SOCKS就可以了,v5的SOCKS增加了鉴权功能),代理指向127.0.0.1,端口7001即可,这样免费的翻墙就做好了。最后再盗一张图:SSH相当强大,还有很多好用的功能,可以参阅:实战 SSH 端口转发翻墙技术博客订阅地址及社交帐号

阅读更多

翻墙这些年

来源:http://www.meowfly.info/?p=320大概是12年左右学会的翻墙,然后就像发现了新大陆一样,在自由的互联网中探索。最早使用的翻墙软件是XX功提供的自由门。速度很慢当然不用说都知道,稳定性还及其不好最恶心的是每次连接到墙外都必须要经过他们的一个主页。至于他们主页宣传些什么,我想,这是众人皆知的。后来使用的一款软件我也不知道叫什么名字,只记得外形像是一只蝴蝶,好像是2345开发的,因为每次运行都会先跳转到他家的导航网站。速度和稳定都还凑合,就是浏览器支持不是很好,有些浏览器上墙外网站全是乱码。记得当时好像是配合遨游浏览器和这货一起用的。后来接触到的vpn就要多一些了,不过基本都关注一些免费的vpn,具体名字也记不太清,很多,很杂。什么green,旗舰,鲨鱼vpn等等,以及其他一些叫做加速器的东西。对这些vpn,我想对他们说:在坐的各位,都是垃圾!(除了goagent,还是比较良心的.原谅我的图,将他们混在一起)自己买了一台笔记本后,也不太敢往电脑上装些杂七杂八的软件了,浏览器也一直用的chrome,偶然间发现了红杏插件。当时,我是震惊的,居然还有不用软件,就可以翻墙。抱着试一试的心态,买了一个月的,从此便走上了一条不归路。这条不归路便是购买各种翻墙服务,因为在自由的网络中遨游,各种免费的翻墙软件实在是体验太差,便果断放弃了。选择购买红杏,主要也是因为价格很低,一个月也才10块钱,当时作为学生党的我也还是可以接受的。在开开心心使用红杏几个月后,红杏这个提供商便喝茶去了,不再提供服务。当时我真是B了狗了。又浪费了很多时间在找各种翻墙软件上面,试过国内几家vpn提供商的服务有多坑我都不想说了。总结起来就一句:把主要精力都用在了广告上面,服务器上下的功夫真的太少。而且,国内目前没有关门大吉的vpn提供商,都已经和茶馆老板达成了共识,是不会被请喝茶的。现在红杏插件的chrome商店主页都还在,各位看官可以去瞧瞧:https://chrome.google.com/webstore/detail/%E7%BA%A2%E6%9D%8F/heehjpdocpefckjobfgnfdbhoebhphkf?hl=zh-CN靠百度搜索到的vpn没有一家是靠谱的,所以在红杏阵亡后的一段时间基本告别了墙外网站。 也是机缘巧合吧,在某个博客上看到了一家国外vpn提供商——vypr,都不知道他们为什么要取如此拗口的名字,也是醉了。不过名字并不影响他们的服务,是我用过的vpn里面最好的一个,没有之一。Vypr-VPN技术上相对国内那些提供商要成熟的多,安全性和稳定性没得说。也是因为这家提供商,让我对vpn协议也有了更对的了解。国内几家vpn提供商的vpn协议都是pptp协议,GFW能很快识别出来,并实施干扰,限速,甚至阻断;而现在国外主流提供商基本都是用l2tp/ipsec协议,企业级的vpn协议,抗干扰能力强很多,vypr也是如此。我喜欢这家vpn提供商还因有其独特之处,例如自家的DNS,NAT防火墙,独家Chameleon™ 协议,以及全球多服务器切换等等。平台覆盖也广,几乎所有操作系统都可用。速度最快当然是吹牛的,不过体验已经很不错了。速度甩国内几家垃圾提供商好几条街。官网在这:https://www.goldenfrog.com当然,有了一款可靠的vpn后,发现的翻墙软件就更多了。现在比较流行的有多甚至是开源项目,例如lantern,具体介绍我另一篇博文中有一些介绍,这里就不详述了。shadowsocks,目前应该是除了vpn之外最为流行的翻墙方式,也难怪clowwindy被请去喝茶了,然后软件的更新感觉明显跟不上GFW建设的步伐了,虽然也还凑合能用。另外,我自己的vps上也搭建了shadowsocks,有需求的朋友也可以在ABOUT ME中加群,然后获得shadowsocks账号。赛风,其实我不太清楚到底开不开源,貌似是多伦多大学公民实验室开发的。2代我用过,体验不是很好,发展到现在第三代,我也是凑个热闹关注一下,没有下载来用,把更多资源留给他人吧。翻墙技术博客订阅地址及社交帐号

阅读更多

科学上网的一些原理

来源:http://hengyunabc.github.io/something-about-science-surf-the-internet/知其所以然本文不是教程向,倾向于分析科学上网的一些原理。知其所以然,才能更好地使用工具,也可以创作出自己的工具。科学上网的工具很多,八仙过海,各显神通,而且综合了各种技术。尝试从以下四个方面来解析一些其中的原理。大致先原理,再工具的顺序。dnshttp/https proxyvpnsocks proxy一个http请求发生了什么?这个是个比较流行的面试题,从中可以引出很多的内容。大致分为下面四个步骤:dns解析,得到IP向目标IP发起TCP请求发送http request服务器回应,浏览器解析还有很多细节,更多参考:http://fex.baidu.com/blog/2014/05/what-happen/http://stackoverflow.com/questions/2092527/what-happens-when-you-type-in-a-url-in-browserhttp://div.io/topic/609?page=1 从FE的角度上再看输入url后都发生了什么DNS/域名解析可以看到dns解析是最初的一步,也是最重要的一步。比如访问亲友,要知道他的正确的住址,才能正确地上门拜访。dns有两种协议,一种是UDP(默认),一种是TCP。udp 方式,先回应的数据包被当做有效数据在linux下可以用dig来检测dns。国内的DNS服务器通常不会返回正常的结果。下面以google的8.8.8.8 dns服务器来做测试,并用wireshark来抓包,分析结果。1dig @8.8.8.8 www.youtube.comdns-udp-youtube从wireshark的结果,可以看到返回了三个结果,前面两个是错误的,后面的是正确的。但是,对于dns客户端来说,它只会取最快回应的的结果,后面的正确结果被丢弃掉了。因为中间被插入了污染包,所以即使我们配置了正确的dns服务器,也解析不到正确的IP。tcp 方式,有时有效,可能被rest再用TCP下的DNS来测试下:1dig @8.8.8.8 +tcp www.youtube.comdns-tcp-youtube-reset从wireshark的结果,可以看出在TCP三次握手成功时,本地发出了一个查询www.youtube.com的dns请求,结果,很快收到了一个RST回应。而RST回应是在TCP连接断开时,才会发出的。所以可以看出,TCP通讯受到了干扰,DNS客户端因为收到RST回应,认为对方断开了连接,因此也无法收到后面正确的回应数据包了。再来看下解析twitter的结果:1dig @8.8.8.8 +tcp www.twitter.com结果:1www.twitter.com. 590 IN CNAME twitter.com.twitter.com. 20 IN A 199.59.150.7 80twitter.com

阅读更多

利用lightsword+level.4给未越狱ios科学上网方案/替代shadowsocks/surge

来自:http://blog.farruh.org/2016/03/%E5%88%A9%E7%94%A8lightswordlevel-4%E7%BB%99%E6%9C%AA%E8%B6%8A%E7%8B%B1ios%E7%BF%BB%E5%A2%99%E6%96%B9%E6%A1%88%E6%9B%BF%E4%BB%A3shadowsockssurge/首先感谢level.4 作者@UnsignedInt8 提供的兑换码。又要提到surge了,不论作者是真的被喝茶了还是只是一种营销手段,毕竟surge已经是688了,暂且不论。之前苹果助手(pgzs.com) 里还可以下载到,前几天也是下架了,现在只能是某宝买共享账户用,土豪请无视。废话不多,这是我找到的第一个替代方案,相信以后会更多。首先,部署服务器,这里演示用的是Vultr的vps,系统为Ubuntu 15.10 i386,第一步我们要给服务器安装Node.js并升级到5.0以上的版本,我在这里给大家最简单的方法,只需复制粘贴运行就好了。apt-get updateapt-get install -y python-software-properties software-properties-commonadd-apt-repository ppa:chris-lea/node.jsapt-get updateapt-get install nodejsapt-get install npm到这里你已经安装好了node.js不过版本很低,我们需要下面两行命令来升级node.jsnpm install -g nn stable这时你的node.js已经升级为最新最稳定的版本了,接下来部署lightsword,也只需两行命令npm i -g lightswordlsserver -f -m aes-256-cfb -p 443 -k password第一行为安装lightsword, 如果安装的时候仍然提示你的node.js版本过低,通过命令reboot重启下vps就好了第二行为运行命令,aes-256-cfb为加密方式,443为端口,password为你的密码,更详细的可以去作者的github查看。运行完第二行如果提示Run as daemonChild PID: 674说明你已经成功启动了lightsword。接下来就可以在Appstore下载level.4安装iOS端了。别忘了切换到香港区或者美国区,大陆区搜不到的,因为软件作者很低调,也没很多人在用,所以多翻几页找找,实在找不到也可以搜索作者名字Wenyi Yang试试 ,懒人直接点这里下载。当然,这是收费软件,价格为1$,也当然,如果你是萌妹子可以@作者@UnsignedInt8 卖个萌,兑换码什么的应该会给你一打。安装好之后的界面是这样的:输入你的vps地址,端口,密码就可以登陆了,登陆之后状态栏会显示VPN图标。目前的level.4版本(0.2.3) 只支持全局,后续更新会内置智能规则,请密切关注Neko@刃。翻墙技术博客订阅地址及社交帐号

阅读更多

CDT/CDS今日重点

十月之声(2024)

【404文库】“闭上眼睛,鬼怪并不会因此遁去”(外二篇)

【404媒体】“等帘子拉开,模特已经换上了新衣”(外二篇)


更多文章总汇……

CDT专题

支持中国数字时代

蓝灯·无界计划

现在,你可以用一种新的方式对抗互联网审查:在浏览中国数字时代网站时,按下下面这个开关按钮,为全世界想要自由获取信息的人提供一个安全的“桥梁”。这个开源项目由蓝灯(lantern)提供,了解详情

CDT 新闻简报

读者投稿

漫游数字空间