#### 1 下载 ###
下载goagent3.0
https://nodeload.github.com/goagent/goa ... cy.zip/3.0
或者直接去 作者 github主页去弄
https://github.com/goagent/goagent/
### 2 部署 ###
部署gae服务端环境
部署 goagent
申请Google Appengine并创建appid。
解压缩刚才下载的文件
修改local\proxy.ini中的[gae]下的appid=你的appid(多appid请用|隔开)
双击server\uploader.bat 开始上传, 成功后即可使用了(地址127.0.0.1:8087)
MacOS/Linux 请在 Terminal 执行 cd server && python uploader.zip
### 3 配置 ###
客户端自动翻墙配置
chrome请安装 SwitchySharp 插件(拖放SwitchySharp.crx到扩展设置),然后导入 SwitchyOptions.bak
firefox请安装 FoxyProxy ,Firefox需要导入证书,方法请见FAQ
IE/Opera 用户请右击 goagent.exe 托盘图标设置 IE 代理。
更多问题参考goagent老的官网
https://code.google.com/p/goagent/
### 4 开机启动 ###
开机启动配置
其实我的重点是在这儿,我期望的是代理开启启动,然后自动翻墙。
windows 用户直接点击 addto-startup.js 根据提示即可完成。
其它系统用户终端执行addto-startup.py 按说也可以(Ubuntu 13.10亲测ok)
【2014年4月9日更新,mac上用程序给的脚本很好用。日志文件也很好 /var/log/goagent 。不需折腾也挺好的】
到这里其实已经完全ok了。但是我没有执行他的开机启动脚本,而是如下面内容自己加到启动项了。
但是既然用 ubuntu 了就是想折腾,刚才自己改了下启动文件,并命名为 goagent,然后把它丢到了 /etc/init.d/ 目录,然后再配置上开机启动(sudo update-rc.d goagent defaults)这样,我们就可以让 goagent 享受开机启动待遇了。
启动脚本如下 或者查看该地址方便拷贝 itbdw.sinaapp.com/etc/init.d/goagent
代码: 全选
#!/bin/sh
#
# goagent init script
# init script edited by zhao.binyan
#
### BEGIN INIT INFO
# Provides: goagent
# Required-Start: $syslog
# Required-Stop: $syslog
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Monitor for goagent activity
# Description: goagent is a gae proxy forked from gappproxy/wallproxy.
### END INIT INFO
### config area start ###
PACKAGE_NAME=goagent
PACKAGE_DESC="my goagent proxy server"
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PATH}
#CHANGE THIS TO YOUR REAL FULL PATH
PROXY_FILE="/home/zhaobinyan/Dropbox/fanqiang/goagent-goagent-c761281/local/proxy.py"
LOG_FILE="/var/log/goagent.log"
PID_FILE="/var/run/goagent.pid"
### config area end ###
# **NOTE** bash will exit immediately if any command exits with non-zero.
set -e
start() {
STATUS=`ps aux | grep ${PROXY_FILE} | grep -v grep | wc -l`
if [ $STATUS -gt 0 ]; then
echo "${PACKAGE_NAME} alreay started, pid `cat ${PID_FILE}`"
exit 0
fi
echo "Starting ${PACKAGE_DESC}: "
nohup /usr/bin/env python2.7 ${PROXY_FILE} >> ${LOG_FILE} 2>&1 &
echo $! > ${PID_FILE}
echo "${PACKAGE_NAME} started."
}
stop() {
echo "Stopping ${PACKAGE_DESC}: "
STATUS=`ps aux | grep ${PROXY_FILE} | grep -v grep | wc -l`
if [ $STATUS -gt 0 ]; then
kill -9 `cat ${PID_FILE}` || true
rm ${PID_FILE}
echo "${PACKAGE_NAME} stoped."
else
echo "${PACKAGE_NAME} is not running. assume stoped :(."
fi
}
restart() {
stop
sleep 1
start
}
status() {
if [ -s ${PID_FILE} ]; then
RUNNING=$(cat ${PID_FILE})
PID_STATUS=`ps -p $RUNNING | wc -l`
if [ $PID_STATUS ]; then
echo "$PACKAGE_NAME is running. $RUNNING"
exit 0
fi
echo "$PACKAGE_NAME is not running, but pidfile existed. I will clean it now..."
rm ${PID_FILE}
exit 1
else
rm -f ${PID_FILE}
echo "$PACKAGE_NAME is not running."
exit 1
fi
}
usage() {
N=$(basename "$0")
echo "Usage: [sudo] $N {start|stop|restart|status}" >&2
exit 1
}
if [ "$(id -u)" != "0" ]; then
echo "please use sudo to run ${PACKAGE_NAME}"
exit 0
fi
# `readlink -f` won't work on Mac, this hack should work on all systems.
cd $(python -c "import os; print os.path.dirname(os.path.realpath('$0'))")
case "$1" in
# If no arg is given, start the goagent.
# If arg `start` is given, also start goagent.
'' | start)
start
;;
stop)
stop
;;
status)
status
;;
#reload)
restart | force-reload)
restart
;;
*)
usage
;;
esac
exit 0