Tuesday, January 17, 2012

转载备份:基于 OpenWrt 路由器和 SSH 的终极翻墙解决方案


{ 撰文/ivan_wl }
这次我们的目标是来打造一台带有自动翻墙功能的路由器!
当然,天上是不会掉馅饼的,为了打造这么一台自动翻墙路由器,还是需要一些条件的。
首先就是一台支持 OpenWrt 的路由器。淘宝上有卖的,刷好 OpenWrt 的带 USB 接口的无线路由,最便宜的也就 100 元左右。
其次就是要有一台 SSH 主机,不解释~
首先简单介绍一下 OpenWrt。OpenWrt 是一个基于 Linux 的开源路由固件。因为是开源而且基于 Linux 的,所以可定制性极强。OpenWrt 有类似软件源的东西,里面有很多已经编译好的软件包,包括 Transmission 和 aMule 等。而且有自己的开发环境,我就在 OpenWrt 上编译了校园网锐捷认证的客户端。所以如果你是牛人的话,理论上在 OpenWrt 上编译个 Tor 来翻墙也是完全可以的。
最新的 OpenWrt 固件可以使用 LUCI 网页管理界面,而且支持中文,非常方便。设置路由的过程我就不多说了,就建议大家更改一下 root 用户的密码。改过后,就可以用 SSH 登录路由器来进行管理了。
对于路由器的文件管理,可以使用任意一款的 FTP 客户端。用 root 用户和密码登录即可。如果你是使用 Linux/GNOME 的话,使用 Nautilus 文件管理器当然是最方便的了!直接就可以像操作本地文件一样来操作路由器中的文件。只需在文件管理器中选择 文件 - 连接到服务器 即可。
由于 OpenWrt 中默认自带的 SSH 服务/客户端是 Dropbear,Dropbear 作为 SSH 客户端无法满足我们的需要,所以我们要安装 openssh-client。首先到路由器的文件系统中 /usr/bin 目录下,删除 ssh 和 scp。其实这两个文件都是到 Dropbear 的符号链接,所以放心删除。
然后我们打开终端,通过 ssh 登录路由器。一般情况下,就是
ssh 192.168.1.1 -l root
登录后,先用
opkg update
刷新一下软件包。(老版本的 OpenWrt 可能是使用 ipkg 来管理软件包,这点我也不太清楚)
然后安装一些需要的包
opkg install openssh-client autossh
我们使用 OpenSSH 来登录主机并做端口转发,使用 Autossh 来自动管理 SSH 连接。
由于 OpenSSH 只支持 SOCKS 代理,如果需要 HTTP 代理的话,我们还要安装 Polipo
opkg install polipo
安装完之后,我们首先要做的就是设置 SSH 的密钥,这样就可以自动登录,而不用输入密码。我是参照这篇文章 来做的。
简单的说,就是几步。首先在自己的电脑上,用 sh-keygen 来生成密钥对。比如
ssh-keygen -b 1024 -t rsa
会在 ~/.ssh 文件夹下生成 id_rsa 和 id_rsa.pub 两个文件。然后把 id_rsa.pub 公钥上传到 SSH 服务器 ~/.ssh/ 文件夹下,改名为 authorized_keys,把 id_rsa 私钥复制到路由器中 /root/.ssh 文件夹下。具体操作参见前面那篇文章,或者自行谷歌。然后我们 SSH 登录路由器,在路由的 SSH 中再用 ssh 命令登录下你的 SSH 服务器(这个有点绕~),看看是不是不用再输入密码了?如果提示你有关权限问题的话,可能还需要改下 id_rsa 文件的属性。
chmod -rw------- /root/.ssh/id_rsa
接下来我们用 Autossh 来试一下
autossh -M20000 -f -q -N -D 192.168.1.1:[代理端口] [用户名@你的主机地址]
打开火狐,设置 SOCKS 代理为 192.168.1.1 和上面设置的端口,如果有 Autoproxy 就更方便了。试一下,墙是不是已经透明了?
接下来我们让路由器开机时自动运行代理。

Wednesday, January 11, 2012

iOS中配置Goagent自动代理

-1. 创建Google帐号、创建appengine、部署GoAgent。(各位看官自行Google解决,在此不作赘述)

0. 将iOS设备越狱。iOS 5.0.1设备用户推荐使用 redsn0w 0.9.10b3 或者更高的版本。用b1版本JB的话,后面的SBSettings会安装失败。

1. 更改 Cydia 设置:Cydia - 管理 -设置 -开发者

2. 添加源


3. 在Cydia 中搜索并安装以下软件(按顺序)

  • adv-cmds
  • Appsync for iOS 【根据你的iOS版本选择相应的软件版本】
  • Python【2.7.1-1】
  • SBSettings
  • goagent-local【来自goagent源】
  • iFile

4. 配置GoAgent

  1. 导入证书:打开Safari浏览器,输入 https://goagent.googlecode.com/files/CA.crt 【注意大小写】,然后安装证书。
  2. 修改用户ID:打开iFile,找到 '/User/goagent-local/proxy.ini' 文件,用Text Viewer打开,在[gae]项中的appid = 处将 ‘goagent’ 改成你在 [-1] 步骤中创建的 appid 名字。然后保存退出。

5. 打开Cydia,找到 goagent-toggle【来自goagent源】并安装,安装完了一定要重启springboard(最简单的就是关机重启)。

6. 配置代理
在Settings -> Wi-Fi -> ‘Current WiFi’ -> HTTP Proxy -> Auto 处填入:
file://localhost/User/goagent-local/8087.pac 【注意大小写】

7. 在SBSettings中启用GoAgent
打开SBSettings -> Dropdown Window - Set  Window Toggles ->Goagent 置于ON ->返回主界面->在通知栏(也就是屏幕最上方的一条bar)处从左向右滑动,SBSettings会弹出 -> 打开Goagent(图标变绿色) ->点击左上角红叉关闭SBSettings窗口。


至此,配置全部完成,Goagent开始运行。测试:打开Safari浏览器,键入www.facebook.com

注:mobile.twitter.com会显示403 Error,原因是twitter限制了来自appengine的访问。请用twitter app直接访问twitter。

本教程部分内容参考自:
http://code.google.com/p/goagent/wiki/GoAgent_IOS
http://blog.csdn.net/shinegogo/article/details/6899618

转载请注明出处。

Sunday, January 01, 2012

生命

我也不知道为什么在这一年的最后一天,会想到一个人,并且会写下这段日志。

她是我的高中同学,在我之前的日志中出现过。不过各位应该也没有兴趣、时间和精力去翻我之前的帖子,所以在这里我叫她Z罢。

在我们这个理科班里,一共只有个位数的女生,而Z是她们中间性格最内向的女孩,极少言语。

根据我的猜测,Z的家境应该不太好,因为她一直都是穿很简朴的衣服,用很简陋的文具,骑很旧的自行车。整个高中期间,我印象中和Z的对话次数是个位数,有太多的烦恼围绕着我,所以我真的很少去关注和了解一个从来不会主动和别人说话的女生。

Z说话总是很轻很细,以至于每次在课堂上老师让她回答问题,坐在第二排的我却听不到坐在第一排的她在说什么,尽管我的座位和她的座位之间的距离不超过3米。Z的动作幅度也总是很小,好像把自己蜷缩在一个狭小的空间里,每一步都小心翼翼,每一次举手投足都是最短路线。

好像每次Z和男生说话都会脸红,可以看得出来她很紧张。因为青春期的缘故?还是因为Z有些自卑?我也实在想不透为什么会这样。Z的成绩一直都不错,等保送生解放之后,高三的几次模拟考都排名相当靠前。我那时候成绩可以说是相当的糟,后进生一个。老师们对我也没什么希冀——反正我无论如何是考不上北大清华的,自然无贡献于学校的喜报。

高考成绩出来之后,Z去了清华大学,我则误打误撞也进了帝都一所相当另类的高校。无论如何,既然都在帝都学习,居然又有了和Z接触的机会。

班上那些优等生在地区的确算是翘楚,但是到了北大清华,周围都是各个省市来的优等生,竞争压力和高中时相比可以说是有过之而无不及。因此,校友聚会的机会也是寥寥无几。大一的时候大家聚了一次,无非也就是互相寒暄,聊聊过去,八卦一下谁谁谈了朋友谁谁又分手。在聚会上,Z和高中时候一样没变,朴素的衣服,轻声细语。

这一次的聚会过后,整整一年的时间,大家就再也没有聚了,只是偶尔在QQ群里聊几句。

时间过得很快,到了大三的时候,大家愈发的忙碌,就连网上联系也少了。而这时候,我听到一个令人惊讶的消息——Z休学了。据同学说,Z是因为精神压力太大,所以想退学,最后家长跑到学校来,当场给Z跪下了求她不要退学,然后就是给Z办了休学手续。听到这个消息的时候,我心里挺不是滋味的,不过没有太放在心上。

不知不觉,两年之后,我毕业了,工作了,但此时,却听到一个更震惊的消息——Z自杀了,遗体已经火化,即将开追悼会。

一瞬间,我脑海里一片空白。

这是第一次,我的同班同学,离世。

悲伤接着涌了上来,伴随着忧愁的思绪。当时正出差在外做工程项目,我只能在电话里和同学说,我实在没办法参加追悼会,感到非常的遗憾。希望他们能代我向Z的父母慰问一声。

之后,Z的话题仿若被上了锁的盒子,再也没有在聚会上被大家打开了。Z是独生女,她的父母一定悲痛欲绝。我们记不得Z的忌日是哪天,Z的父母却永远会在每年的这天倍感伤悲;我们在西历新年和春节的时候都开开心心地向未来许愿,Z的父母却只能面对空床空椅子叹息。

我都不知道我们是不是该在这样的喜庆欢乐的节日的时候去慰问Z的家人。这样会让他们更痛,还是会减轻他们的痛苦?我不知道,我一点也不知道。

所以,我最后还是只能小心翼翼地,在这个大家都不知道的地方,对Z的家人说一句,好好活下去。我们从未忘记。

这个世界上,没有什么比生命更宝贵。