2015年12月21日星期一

没有审查的微博,Twister在Ubuntu上的安装与使用。

在中国,发微博是件危险的事情,早之前的2009年曾有因为发言而被跨省追捕的李帅,现如今浦志强因为7条微博就被关押,而且今天将被审判。这是一个多么神奇的国度啊!不仅大咖被抓,小虾米发微博也有被删除的可能。为了保护自己,我们需要一个不被追踪,不被审查的微博。Twister就是用来做这个事情的。关于Twister的介绍,这里不多说,只介绍如何在Ubuntu上安装与使用。至于Twister在Windows和Mac上的安装与使用,另文介绍。

目前,Twister已经可以简单地使用包来安装。在Ubuntu上,打开终端,输入以下命令:

sudo add-apt-repository ppa:podshumok/twister-core-daily
sudo apt-get update
sudo apt-get install twister-core
sudo apt-get twister

这样就完成了安装。随后开始运行,在终端里输入:
twisterd -daemon -rpcuser=user -rpcpassword=pwd -rpcallowip=127.0.0.1
然后打开浏览器,输入网址:http://user:pwd@127.0.0.1:28332 即可看到Twister的运行页面。

由于Twister的机制,首先需要等待下载区块链,有个黄色的条提示"Downloading Block Chain",可以等待完成,也可以按照下图来设置,会保证下载区块链。
当区块链已经更新完毕,点击"Home"或主页,即可开始注册一个用户名(ID)。

[关于语言,可以点击右上角的扳手螺丝刀交叉的那个图标,选择Option,然后在第一个下拉框里选择Chinese Simplify。]

写入用户名(ID)后需要等待一会儿,直到显示Your KEY:(一串字符)。这个key就是我们以后用于登录Twister的凭证,重装Twister以后输入自己注册的ID和这个key来登录Twister即可使用原本的自己的微博,因此这个key需要保存下来并放到安全的地方。

随后等待一会儿,在这时可以设置自己的头像和其他一些个人信任,不过鉴于Twister还不能够被严谨验证可以保护隐私,所以最好还是不要透露过多的个人信息。当显示可以登录后,即可愉快地玩耍了。

刚开始不知道有谁可以关注,那么到https://twisterio.com这个页面来搜索感兴趣的话题,即可找到相关的人去关注。

其他使用的方法,需要自己再摸索下。跟Twitter差不多。


参考资料:
http://lovefchan.tumblr.com/post/104829851544/p2p%E5%BE%AE%E5%8D%9Atwister%E4%B8%80%E4%B8%AAgfw%E6%97%A0%E6%B3%95%E5%B0%81%E6%9D%80%E9%AB%98%E5%BA%A6%E5%8C%BF%E5%90%8D%E6%97%A0%E4%B8%BB%E4%B9%8B%E5%9C%B0p2p%E7%BD%91%E7%BB%9C

http://wiki.twister.net.co/w/zh:using:twister_beginner_guide:start_twister_on_windows


没有GFW的互联网,从一个正常的DNS开始。

GFW干尽坏事,千方百计阻止中国人民自由地使用互联网。首要的手段就是进行DNS污染——在输入域名以后,给一个错误的IP地址。由于DNS是个古老的服务,并没有考虑到这种攻击,也就缺乏能够应对的手段。感谢上帝,智慧的中国人民发明了各种各样的梯子来跨过防火墙,那么也就有了将DNS恢复正常的办法——自己建立DNS服务器,国内的网站还是使用ISP给的DNS,国外的网站全部通过翻墙通道从国外获取IP地址。

自己建立一个没有污染的DNS服务器,不仅可以正常使用互联网,还可以隐藏自己访问国外网站的踪迹,并且在有大规模DNS故障的时候(已经发生了至少三次全国性DNS故障导致无法上网)自己仍然可以联网。下面谈谈思路以及实现:

这篇文章 提到了自己建立递归DNS服务器,根据DNS递归查询原理,国外的域名都会向国外的DNS发起查询,只要这个查询结果不被GFW篡改,就可以获得准确的IP地址。那么,建立这样的一个机制:一个递归DNS服务器,它上面所有对国外IP发起的通讯,尤其是DNS查询,走VPN或其他翻墙手段出去。文章中的办法是使用VPN,但是近年来VPN频频被干扰。大家用的翻墙手段是各种各样,这些手段都有一个共性:在本机会有一个socks5的代理。因此,只要在原文章里的办法上加一些改进,让DNS查询这种UDP通讯能够从SOCKS代理出去,那么就可以有效地抵抗污染。

 这个技术有两个关键点:
1) UDP包能够转发到socks5代理。
2) socks服务器支持UDP转发。

实现第一点是本文的核心。有如下一些步骤:
1) 采用IP分流技术,从APNIC获取中国大陆IP地址段,用路由的方式规定国外IP段都走到一个虚拟网卡去。
2) 使用tun2socks软件,建立一个虚拟网卡设备:tun,用来接收分流过来的数据包,包括TCP和UDP包,并将这些包转发到socks代理端口去。
3) socks代理将这些包都转发到socks服务器。这个socks代理,可以是Shadowsocks,更可以是Tor等翻墙软件所建立的。

实现第二点,以最常见的Shadowsocks来说, 服务器上安装Python版本的Shadowsocks是不支持UDP转发的,只有Shadowsocks-libv才可以实现。Tor也是支持的(?)

建立递归DNS服务器之后,还需要设定缓存,如果使用BIND作为递归服务器,是没有缓存的,只好再建立一个Dnsmasq之类的纯转发和缓存DNS,用户计算机的DNS设定为Dnsmasq,再由它去问BIND。这样显得结构很复杂,也不太容易在一台计算机上建立好,因此还可以使用其他DNS软件,如PowerDNS等来做递归和缓存服务器。