在Ubuntu 上用GoAgent

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
IT不倒翁
帖子: 45
注册时间: 2011-04-07 18:29
联系:

在Ubuntu 上用GoAgent

#1

帖子 IT不倒翁 » 2014-04-08 16:16

这标题个有点大。

#### 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
上次由 IT不倒翁 在 2014-04-09 10:30,总共编辑 2 次。

代码: 全选

{'name' : 'IT不倒翁', 'blog' : 'http://yungbo.com', 'computer' : 'ThinkPad T420, i5, 4GB, 500GB'}
头像
ak2008
帖子: 262
注册时间: 2009-03-06 10:52
系统: ubuntu-12.04

Re: 在Ubuntu 上用GoAgent

#2

帖子 ak2008 » 2014-04-08 16:45

mark
头像
442449076
帖子: 388
注册时间: 2009-07-01 16:34

Re: 在Ubuntu 上用GoAgent

#4

帖子 442449076 » 2014-04-08 23:30

有VPN不用折腾了
头像
qq420100523
帖子: 1684
注册时间: 2009-07-31 18:56
系统: windows、ubuntu
来自: 广东阳江

Re: 在Ubuntu 上用GoAgent

#5

帖子 qq420100523 » 2014-04-09 19:39

442449076 写了:有VPN不用折腾了
还是VPN方便
头像
aiikii
帖子: 268
注册时间: 2008-03-05 23:45

Re: 在Ubuntu 上用GoAgent

#6

帖子 aiikii » 2014-04-13 10:56

还要写手机号啊,不用了。
回复