树莓派搭建Goagent

树莓派搭建Goagent,对局域网多台电脑提供够用的网页代理服务。这里说是“够用的代理服务”指的是:由于树莓派的性能瓶颈,使用Goagent进程的CPU资源占用率经常达到百分之百,进而影响代理速度。

就个人而言,不太喜欢对浏览器安装任何代理插件,切换来切换去挺麻烦。所以,本人采用的是双浏览器方案:Chrome浏览器平时正常使用,Firefox浏览器则默认使用代理方式上网。

1,安装Goagent

安装Goagent的教程太多,一搜一大把,不过在linux下安装还是有些地方需要注意。

首先,虽然Goagent基于python,拥有良好的跨平台性,但是还是和windows上有稍许区别。

比如上传server端到GAE,需要使用命令:

pi@Lee-RPi ~ $ python ~/goagent/server/uploader.zip

比如运行客户端:

pi@Lee-RPi ~ $ python ~/goagent/local/proxy.py

其次,可能首次运行会提示有些包没有安装,比如python-openssl等,根据提示apt-get install即可。

然后,还可能出现certutil: function failed: security library: bad database.错误,我根据参考用如下办法解决。

pi@Lee-RPi ~ $ mkdir ~/.pki/ pi@Lee-RPi ~ $ mkdir ~/.pki/nssdb pi@Lee-RPi ~ $ certutil -d sql:$HOME/.pki/nssdb -N

2,让SSH关闭后Goagent仍然保持运行

我的树莓派是没有键盘等输入设备也没有显示器的,只能通过SSH客户端访问。这里就出现一个问题,当我退出Bitvise客户端的时候,整个会话中所有进程随之结束。

由于Posix规范,退出SSH客户端时候,系统会给当前会话中所有进程发送SIGHUP信号,一般来讲,收到信号的进程就会结束。为了让这些进程忽略SIGHUP信号继续运行,就要使用nohup命令。

pi@Lee-RPi ~ $ nohup python ~/goagent/local/proxy.py >/dev/null 2>&1 &

其中,由于nohup默认会产生nohup.out输出重定向文件,此文件对我来讲不需要。为了不产生此文件,再把nohup的输出重定向到一个空设备即可。

3,最后

设置Firefox,注意勾选“所有协议使用相同代理”

测试,OK!