Pages

Wednesday, 4 April 2012

Android翻墙总结

利用国外服务器建立加密中转通道是翻墙的关键。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的软件。

No comments:

Post a Comment