Total Pageviews

Thursday, 20 September 2012

Android 手机通过 OpenWRT 无线路由器翻墙


OpenWRT 开放的架构提供了无限的定制可能,我用的是 svn 自编译 x86 版本,dns 服务器是 dnsmasq,自带的启动脚本没有支持 dnsmasq 的所有参数,比如这里需要用到的 -a。
修改 /etc/init.d/dnsmasq,在大约 44 行处,append_server() 函数的下方增加一个 append_address() 函数
append_address() {
append args "-A $1"
}
然后修改 dnsmasq 的配置文件 /etc/config/dhcp,在 config dnsmasq 一节中增加 3 行代码
list address            '/clients2.google.com/209.85.135.100'
list address            '/android.l.google.com/209.85.135.101'
list address            '/android.clients.google.com/209.85.135.100'
保存后,重启 dnsmasq
/etc/init.d/dnsmasq reload
再用 Nexus One 测试,中断的服务已经恢复可用。
路由器使用 dd-wrt 或 tomato 的,可以在 dnsmasq 自定义参数输入
--address=/clients2.google.com/209.85.135.100 --address=/android.l.google.com/209.85.135.101 --address=/android.clients.google.com/209.85.135.100