Saturday, March 31, 2012

Android翻墙总结

这两天为了让手头的山寨Android tablet Ten3翻墙,折腾了半天。虽然最后还是没能成功,但对伟大的GFW和如何翻墙,有了更多的认识。

翻墙之前的首先要了解GFW是如何干扰网络连接的,具体可见 GFW封锁网络的几种常用方法。干扰大体可以分为DNS干扰,IP封锁,TCP连接干扰,SSL干扰。翻墙的方法虽然千差万别,但基本思路都是一样:建立本地和国外服务器的加密通道,将本地的DNS查询连接,HTTP/HTTPS中转至国外服务器。对于DNS服务,除了加密中转通道,还需要设置正确的DNS服务器(like Google or opendns)来解决DNS劫持问题。

从上面可以看到,利用国外服务器建立加密中转通道是翻墙的关键。TCP/IP连接是分层架构,因此较高层上的加密中转只能适应部分程序。openvpn/l2tp/pptp都是较低层面的加密连接,可以让所有的本地连接加密中转。SSH的socket proxy可以加密中转http/https的接连。需要注意的是http proxy并不能处理ftp和https的中转。https的中转需要socket proxy来处理。

除了国外服务器,加密中转的另外一个问题就是如何将本地连接转发至加密通道上。openvpn/l2tp/pptp在内核空间增加了一个network adapter,所以只需要通过路由表就可以进行转发。对于http/socket proxy通道,如果application支持proxy,则可以自动转发;反之则需要利用iptables将http/https连接通过transparent SOCKS proxy转成socket proxy。

当加密中转连接到到服务器端时,还需要在服务器端做一些设置以便进行中转。openvpn/l2tp/pptp是通过iptables在内核实现转发。ssh即可以利用-D选择转发socket,或者利用端口映射将socket转发至socket proxy或者http proxy。

l2tp和pptp是大多数android设备都默认支持的VPN。但很多router或者firewall不支持pptp,常常会遇见一些莫名其妙的问题。openvpn需要android内核支持tun.ko模块。同时android还需要有binary openvpn application。整个安装过程较为复杂。

sshtunnel/gaeproxy是socket/http level的加密中转,因此需要利用到android中的iptable及相应的kernel module。

Ten3由于没有iptable相应模块。所以无法使用ssh。 pptp和/l2tp的binary application貌似有问题,无法连接pptpd服务端。但万幸的是tun.ko模块原生自带,只要在市场下载openvpn installer和openvpn setting就可以使用了。为避免dns污染,还需要装一个改变dns的软件。

Tuesday, March 20, 2012

枪炮,细菌和钢铁 - 3

最早的文字起源于两河流域,最初也是类似于甲骨文的象形文字。我猜想用图画记录和表示特定物体对于所有的人类是最为自然的,文字也许就起源于更早的岩画。象形文字的缺点在于词汇量有限,很难表达抽象词汇。

之后在两河流域出现了用发音表示文字的字母文字,这是文字史上的重大创新。作者说也许这是人类文字历史上唯一一次的独创性的创新,之后其它地区的字母文字都受到它的影响。和动物一样,人类最初的交流应该就是通过声音,所以表示发音的字母文字更加容易被接受和学习。

文字使得大量的知识可以得以传播和学习,它是一切文明的基础。

世界上大多数文字都是字母问题,汉字是为数不多的表意文字。为什么中国人没有在几千年前转为字母问题以及古代中国人是如何解决表意文字的缺点?这应该是一个相当有趣的研究课题。

枪炮,细菌和钢铁 - 2

农业是现代文明的基础,没有农业就没有文字,国家和科技发展。可以说农业的出现好比一个多变量方程,只有找到了若干变量的唯一解后,农业才能成功在人类社会扎根。

首先人类必须驯化出合适的植物和动物。地球上可供驯化的动植物资源其实是非常有限的。欧亚大陆由于自身地理和气候条件的优势,具有丰富的可供驯化动植物资源。其它大陆则往往缺失若干关键资源,比如美洲缺乏可驯化的大型哺乳动物。这是为什么现代文明主要出现在欧亚大陆(希腊,西欧,两河,印度,中国),而非洲,美洲和澳洲发展较慢的主要原因。

由于可驯化资源的短缺性,人们很难在一个地方找齐所有必要的物种和技术。这时物种和技术的传播和共享就非常重要了。由于欧亚大陆为东西走向(其它大陆是南北走向),相同的维度更利于驯化动植物资源的广泛传播。

Wednesday, March 14, 2012

枪炮,细菌和钢铁 - 1

新买了一个1.5k的10 inch Android tablet Ten3,中国的山寨货自然是毛病一堆,不过对于只是上网,偶尔玩游戏,主要用来看扫描版PDF的需求,自然是够用了。买回来后尝试着用自带的智阅看了扫描版的“枪炮,细菌和钢铁”,感觉真的很不错,比电脑和手机上的阅读体验强多了。不过不知道和10 inch的kindle相比,哪个更舒服些。

言归正传,这本书讲的是人类社会发展史,主要是为了回答一个澳洲土著的问题:为什么西方人能做出复杂的“货物”,而他们不能?或者说当我们回到哥伦比亚大发现前的时代,环顾全球,就会发展各个大陆上的人类社会千差万别。那么是什么原因造成了这种差别呢?我想这本书就是为了回答一个问题:人类社会为什么会变成现在这个样子?

农业大约是公元前8500年在两河流域出现,在这之前的漫长历史中,人类通过狩猎生存了几百万年。就如“裸猿”所讲,现在人类的很多行为和基因,还深深的烙上了狩猎时代的特征。农业时代大约只持续了一万年,这种时间跨度应该对人类的基因影响有限。工业时代大约也只有150年左右,它对人类原始基因的影响目前还是不大,将来就很难预估了。但工业社会中,人行为和思想的进化应该要比身体的进化快很多。

作者还谈到了为什么橡树的橡实不能像水稻和小麦一样很容易被人类驯化。橡实驯化困难的原因很多,但其中之一就是橡树成长需要10年以上的时间,这大大增大了驯化所需要的时间,减少了驯化实验的次数。这其实和之前单靠人力飞行英吉利海峡的挑战一样,成功的关键在于缩短实验的时间,增大实验次数。这个道理其实对于软硬件设计也同样使用。目前的很多设计由于变量太多,较为复杂,很难在设计前通过仿真和计算的方法确认好所有的参数。这时try and cut就成了产品设计成功的关键所在。

Wednesday, March 07, 2012

Reinstall Archlinux on usbstick

The default Archlinux installer has issue to install grub into usbstick. I have to install grub in my old Archlinux system. I have to use map according to wiki.archlinux to use grub to boot Windows Vista.

The pgp server (keys.gnupg.net) is valid, but pgp.mit.edu:11371 also has issue.

The urxvt will also read .Xdefaults when starting. But xrdb is needed to use .Xresources. .Xdefaults is deprecated.

It will save lots of time if using *.pkg in /var/cache/pacman/pkg.

package list:
  • xorg-server xorg-xinit xorg-xhost xorg-xrdb xf86-input-mouse xf86-input-keyboard xf86-input-synaptics xf86-video-intel intel-dri
  • i3-wm i3status i3lock dmenu urxvt-unicode screen dzen2
  • croine acpi acpid cpufrequtils esmtp bc fakeroot
  • chromium qterm-unstable dbus fcitx alsa-utils flashplugin
  • opendesktop-fonts wqy-bitmapfont wqy-zenhei wqy-microhei ttf-dejavu ttf-droid xorg-fonts-100dpi xorg-fonts-75dpi