极路由改OpenWRT加GoAgent小记

去年手贱买了好几个极路由极壹,其中有个粉色的(这个比较娘炮的颜色买的时候没得挑了……),无意中了解到极路由的Firmwares是基于OpenWRT定制的,于是玩心大起,当时就把粉色极壹按照官方教程(也可参考这个教程)刷成OpenWRT,然后就丢在一边了,直到这个月中旬要进山出差就顺手带上了。

本PO主要记录一下在OpenWRT里面添加GoAgent的操作,此篇小记基本上可适用于所有OpenWRT路由器。

0. 前提

这篇POST的前提是,具备一个路由器,已经刷好OpenWRT系统。

我的是极路由极壹。通过 https://code.google.com/p/openwrt-hiwifi/ 获取编译好的OpenWRT新版固件,按照页面下方的刷机方法直接刷入路由器即可。其中,如果使用的是笔记本,最好关闭无线网卡。

我的极路由型号为HC6361,路由器名称为Yo_Pink,固件版本为OpenWrt Barrier Breaker r38140,操作的机器为Windows系统。

1. 准备

  1. 下载一份GoAgent备用,可通过这里下载,并上传服务器端到GAE,我使用的是3.1.5版。
  2. 刷好OpenWRT的路由器需配置并连上网络,因为需要下载一些组件。
  3. 安装一个趁手的SSH连接工具,我使用Xshell
  4. 准备一个可以打包文件为tar.gz或tar或tgz格式的压缩软件,我使用7 Zip
  5. 一个简单小巧的HTTP服务器软件,我使用HFS

2. 配置GoAgent

此步操作与PC上使用GoAgent相同,将下载的压缩包解压,编辑 local/proxy.ini 配置文件,需要修改两个地方

    Proxy.ini第二行修改:

    Proxy.ini第八行修改:

配置完成后可以在本机运行GoAgent.exe,并将浏览器的HTTP代理服务器设置为服务器地址127.0.0.1、端口8087进行测试是否有效可用。

3. 打包GoAgent

将GoAgent压缩包解压出来的以下文件打包为tar格式的文件,此处暂命名为go.tar

  • CA.crt
  • certs目录
  • dnslib-0.8.3.egg
  • proxy.ini
  • proxy.pac
  • proxy.py

4. 配置路由运行环境

GoAgent的客户端要在OpenWRT里面运行,需要安装几个组件,幸好OpenWRT提供了很方便的包管理工具opkg,不需要我们自己到处找组件包。

首先通过SSH连接你的路由器,一般就是你的网关了,我这里默认IP地址是192.168.1.1,在xshell里面,直接输入

然后执行 root@Yo_Pink:/# 之后的命令(后文均是如此)

等Xshell里面重新出现 # 符号,说明组件安装完成,继续。

5. 上传GoAgent

因为OpenWRT内置的SSH服务dropbear只能支持SSH和SCP,如果你本机是Windows,那搞起来会比较麻烦,这个时候,运行HFS,它的作用是在你本机临时搭建一个HTTP服务器。之后将之前压缩好的go.tar拖到HFS界面内即可,然后切换到Xshell这边下载,假设本地机器的IP地址为192.168.1.2,那么需要在xshell里面执行

这几步完成了GoAgent的下载、解压。

6. 测试GoAgent

完成了GoAgent的转移,那么就需要在路由环境内测试GA是否可以正常运行了,切换到Xshell,输入

如果出现以下结果,说明就成功了

头两行的WARNING可以忽略,没什么影响,主要是下方的信息出现,则说明GA可以在这个环境正常运行。

7. 设置开机启动GoAgent

在网上看到一个教程是在rc.local里面的exit 0前增加命令python proxy.py,虽然简单易行,但是最明显的问题是,GA运行一段时间后,如果你从管理界面重启路由器,会发现重启功能失效了……因为GA结束任务需要很长时间,会导致重启超时,这个时候……只能拔电……或者按照以下方法写一个init控制脚本,鉴于我个人比较喜欢把事情做得好一些,所以我选择了编一个启动脚本。

这里还涉及到一个文本编辑器的问题,我个人喜欢nano,需要额外安装,如果你喜欢vi那就什么都不用装了,把下文的nano换成vi就行……继续到xshell里面执行命令

之后,复制以下内容到Xshell的界面中,相应路径如果有变更请按需修改(主要是指第四行:/goagent/proxy.py

粘贴好后,按Ctrl+O保存,Ctrl+X退出编辑器,然后继续

这两个是将inti控制脚本增加在系统开机项和关机项中,保证开机的时候GA会自动运行,关机之前GA能被系统干掉。
之后,直接输入reboot重启路由。

8. 最终测试

待路由重启完成,重新SSH连上,执行ps |grep goagent检查服务是否启动

看不懂没事,出现两行结果就说明OK了,这时候,你把浏览器的代理服务器IP地址修改为路由器的192.168.1.1就可以了,然后访问一下 ip.cn 或者 ip138.com 之流看一下自己的IP是不是变成米国了,如果是,恭喜你出去了~ 如果不是……留言,咱们讨论一下。

完事。

-EOF-

——————–
参考引用:
1. OpenWrt安装goagent实例教程 http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=14193
2. OpenWrt Firmware Building for HiWiFi Router (tw150v1) Project https://code.google.com/p/openwrt-hiwifi/
3. 在linux关机时执行某个脚本 http://guchonglin-6.blog.163.com/blog/static/57527531201061103952310/
4. 豆瓣电台 http://douban.fm/

Published by

贰壹

忙忙碌碌仍在路上的人,热爱IT,挚爱16。

20 thoughts on “极路由改OpenWRT加GoAgent小记”

  1. 楼主好,我用了你这种加脚本的方法启动之后goagent还是没有自己启动,手动执行 “/etc/init.d/goagent start”才可以打开goagent的服务,不知道为什么

  2. Python因为依赖库的问题所以安装了之后还需要做一次挂载,我是安装到U盘的所以这个问题很明显,其实只要加一条命令“ln -s /mnt/sda1/usr/bin/python /usr/bin/python “ 就可以了。

    推荐
    ln -s /mnt/sda1/usr/bin/python /usr/bin/python

    /etc/init.d/goagent start
    加到exit 0 前面,开机30秒内就会自动启动的。

      1. 再研究了一下,发现问题的关键是建立了/etc/init.d/goagent后,goagent这个启动文件的权限默认是无法执行的,只要简单的用

        chmod 755 goagent
        然后插入/etc/init.d/goagent start到exit 0前面就可以了(不知道不插入行不行,懒得试了)。

        1. 实际上chmod +x /etc/init.d/goagent 之后,我估计把S80goagent改一下,改成S100goagent应该可以开机启动了。
          如果把启动命令放在rc.local里面,会出现关机或者重启卡死的情况,因为没有干掉goagent的动作。

  3. 你好,我的dd-wrt只有16M ROM,没有USB接口,那能不能通过samba mount到我的另一台路由上的移动硬盘来安装goagent需要的各种软件?
    我不是很懂,不知道是否可行,如果可行的话,mount到samba服务器之后,剩下的步骤是不是就跟你文中提到的一样了

    1. 你好,我认为是可行的,但是实际上需要通过这些外挂存储的方式复制进去的也就只有goagent,其它组件的比如python,nano都是用opkg这个OpenWRT自带工具在线安装的,不需要外挂存储提供文件。
      不过应该没有在PC上临时搭一个HTTP服务器来得简单些吧。

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha Code

This site uses Akismet to reduce spam. Learn how your comment data is processed.