因为在 Github 上下载的时候实在无法忍受 24 kb/s 的龟速……查了下资料, Linux 下好像比较常用 ssh 翻墙,但对我来说还是 GoAgent 比较熟悉,于是折腾了一下,最终搞定。上教程。
一、准备工作
1、申请 AppID 和 Win 下相同,本文假定已经成功申请到至少一个 AppID ,方法在此不再详述,需要的话请访问:http://blog.howgo.info/archives/3246.html
2、Ubuntu 已经自带 Python ,但是建议还是确认一下。终端 sudo apt-get install python
3、下载 GAE for Linux https://developers.google.com/appengine/downloads?hl=zh-CN
4、下载 GoAgent ,Win 和 Linux 是通用的, Linux 下直接用 .py 脚本运行 https://code.google.com/p/goagent/
二、上传服务端
如果已经在 Win 下或者其他时候上传过 GoAgent 服务端可跳过此步,无需重新上传。在此重新上传不影响其他平台使用。
1、先解压 GAE 和 GoAgent ,将 goAgent 放到 GAE 的 google_appengine 目录下
2、进入 GoAgent目录/server/python ,编辑 app.yaml ,填入 AppID 和 Version (默认是1)
3、进终端,使用 CD 命令进入你的 GAE 目录,然后激活位于你的 GoAgent 目录的上传脚本。
cd [GoAgent目录]/server python uploader.zip
或者使用Python的内置同步脚本:
sudo python appcfg.py update [GoAgent目录]/server/python
随后在终端填入你的email和密码就能上传了。
三、配置客户端环境
1、安装 Gevent (非必须组件,若后面遇到问题可尝试安装):
sudo apt-get install python-dev curl -L -O https://github.com/python-greenlet/greenlet/archive/0.4.0.tar.gz && tar xvzpf 0.4.0.tar.gz && cd greenlet-0.4.0 && sudo python setup.py install curl -L -O https://github.com/downloads/surfly/gevent/gevent-1.0rc2.tar.gz && tar xvzpf gevent-1.0rc2.tar.gz && cd gevent-1.0rc2 && sudo python setup.py install
2、要正常使用gtk托盘以在托盘区显示图标,需要安装以下软件包(按需要选择):
sudo apt-get install python-appindicator sudo apt-get install python-vte
四、配置客户端
1、在 GoAgent 的 local 目录中,有一个 proxy.ini 文件,将你的 AppID 填入
2、终端 CD 进 GoAgent 目录,激活客户端,如:
cd [GoAgent目录]/local sudo python proxy.py
3、也可以赋予 proxy.py 可执行权限之后直接双击 proxy.py 运行,在 proxy.py 上面右击,属性的权限中勾选允许以程序执行文件即可。
4、运行 goagent-gtk.py 可以使用 GTK 托盘方式即在右上角显示小图标运行 GoAgent 。
五、其他问题
1、配置好 GoAgent 后使用方法同与Win下相同,只需要浏览器翻墙的话推荐 Chromium + SwitchProxy ,具体方法参见第一步中给出的申请 AppID 教程结尾处。
2、如果不止在浏览器中翻墙,还需要设置全局代理,可以访问 Ubuntu 系统设置 > 网络 > 代理 在http和https连接处填写 GoAgent 的本地端口地址 127.0.0.1:8087 ,然后点击应用即可。
如果桌面环境没有提供全局代理的设置,也可以手动编辑 /etc/profile 文件,在其中加入:
# 分别指定 HTTP HTTPS FTP 协议使用的代理服务器地址 http_proxy= 127.0.0.1:8087 https_proxy= 127.0.0.1:8087 ftp_proxy= # GoAgent 不支持 FTP # 设置不使用代理的网址或者IP,用逗号分隔 no_proxy= 127.0.0.1, 192.168.1.1 # 设置环境变量 export http_proxy https_proxy ftp_proxy no_proxy
3、访问部分网站提示证书不受信任问题与 Win 下相同。解决方法是: Chromium 首选项 > 高级选项 > 管理证书,在 授权中心 导入 GoAgent/local 目录下的 CA.crt 证书,注意不要导入到 服务器 ,否则不起作用。在 授权中心 找到 GoAgent CA 修改信任设置为全部选中,其他浏览器相同。重启浏览器生效。
4、启动后似乎会自动创建桌面图标,如果没有,可以尝试以下办法(别忘了更改为对应路径):
在桌面新建一个空白文档,命名为 GoAgent.desktop ,然后使用 gedit 或其他文本编辑器打开,然后输入:
[Desktop Entry] Type=Application Name=GoAgent Comment=GoAgent Start Categories=Network;Proxy; Exec=sudo python [GoAgent目录]/local/goagent-gtk.py Icon=[GoAgent目录]/local/goagent-logo.png Terminal=true StartupNotify=true
这是唯一一种可以和Win下一样正常显示代理窗口的方法,不过每次都要输入一遍账户密码。也可以不让 GoAgent 在终端显示,只需要将 Terminal=true 改成 Terminal=false 。最后别忘了更改一下权限:
sudo chmod 777 [GoAgent目录]/local/proxy.py
唔,订正了一些错误。这篇应该是目前最详细的教程了吧。刚照着折腾了一遍的说……
楼主好,问下怎么解压 下的这个文件
使用 tar -xzvf (文件名) 即可,或者常用压缩软件都支持打开
每日打卡,打卡时间:下午5:12:29
运行 goagent-gtk.py 出现如下错误:
请问应该怎么解决,,,感谢!
貌似是编码的问题,搜索了一下好像只有说改源码的……
说不定是下载时损坏了?
这么囧,那我重新下载试试~
兄弟,这个问题解决了么,我也是这个问题啊。
你是怎么解决的啊?
谢谢!貌似不是下载问题/
木有解决,,,暂时没有弄了
这个问题是因为 Python 环境的默认编码和文件编码不同造成的,解释器在运行时需要把文件编码转为 Unicode 再运行。
可以在终端进入 Python 命令行后用以下代码查看环境默认编码,然后将出错的文件使用此编码保存:
或者如果知道出错脚本的编码,试试编辑一下那个脚本,在最顶上加入以下三行:
开始我也以为是下载损坏了。。。刚刚照你说到把代码加到proxy.py就好了。
不过为什么你没有问题?
还有google_appengine SDK 起作用了没有啊? 把goagent放到他目录下就起作用了?
不是很清楚,估计系统的语言环境什么的配置影响到了编码吧……
google_appengine 这玩意儿只是上传时需要的,如果已经上传好了服务端完全不需要…… 所以说上传后 GoAgent 放在哪都行。
这篇是从无到有的配置啊,我本来想找设置全局goa,你如果从Github下载那是需要全局配置的了?
顺便说一下,blog做得挺好看的,大叔年龄翻你一倍还多了,独立域名技术blog还在酝酿脑子里。
唔 …… 抱歉没有听明白意思,是说设置系统全局代理的办法么?如果是的话,刚才更新了一下文章 5.2 设置全局代理的部分,可以参考一下的说。
谢谢夸奖呢,一起加油吧~
我在g+找到你了,g+的背景主题有点像化物语啊
我会说我搞不定吗?最后哦用了hosts文件上上基家没问题了。
我用了楼主说的,在proxy.py最上面加了下面几句,
然后报了下面错误:
SyntaxError: Non-ASCII character '\xe5' in file proxy.py
然后我再在 proxy.py 文件最顶加上:
#coding=utf-8
,然后成功了。注意是
#coding=utf-8
,而不是coding=utf-8
,很多人以为#是注释原来编码信息可以这么写么 …… 好厉害
话说可以转载么??终于看到了如此之详细的…太感谢了!
以上!
elementary OS测试了…貌似不行了啊
你好,我在终端输入python proxy.py 后,显示如下
Traceback (most recent call last):
File “/home/chian/goagent/local/proxy.py”, line 2746, in
main()
File “/home/chian/goagent/local/proxy.py”, line 2723, in main
server = LocalProxyServer((common.PAC_IP, common.PAC_PORT), PACProxyHandler)
File “/usr/lib/python2.7/SocketServer.py”, line 419, in __init__
self.server_bind()
File “/usr/lib/python2.7/SocketServer.py”, line 430, in server_bind
self.socket.bind(self.server_address)
File “”, line 1, in bind
socket.error: [Errno 98] Address already in use
Exception KeyError: KeyError(22423024,) in ignored
请问这是什么原因呢
hello 请问你这个问题解决了吗
我也遇到这个问题了 哭
重启一下,不要让进程重复
大榭楼主!
多谢博主!
经过指导终于知道证书导入方法了!
很棒的文章 谢谢博主
在python proxy.py 的时候
Traceback (most recent call last):
File “proxy.py”, line 52, in
import sysconfig
ImportError: No module named sysconfig
报了这样到错是什么情况?
检查一下 Python 版本,试一下 Python 2 和 Python 3
从google找到的,亲测好评~
如果可以再顺便提一提配合chrome或者firefox的插件使用就更完整了。
博客很漂亮,博主也是连青有为的少年w
已关注知乎&G+。
po主提供的greenlet和gevent安装方法不能用
提供下我的安装方法(安装完python后,安装下setuptools以便使用easy_install)
安装的greenlet: sudo easy_install greenlet
安装gevent有两种方法
1.使用pip安装最新的开发版本
安装pip:sudo easy_install pip
然后:sudo pip install cython git+git://github.com/surfly/gevent.git#egg=gevent
2.安装最新的发行版
到https://pypi.python.org/pypi/gevent 下载xxx.tar.gz 文件
cd [下载目录]
tar -zxvf xxx.tar.gz
cd [解压目录]
sudo python setup.py install
但我始终无法sudo python proxy.py
总是提示我:please install python-gevent
我知道了
原因:
系统原来带有python 2.7.6
而新装的python 2.7.8 的解释器没有导入系统
你好,上面所讲的运行 goagent-gtk.py 可以使用 GTK 托盘方式即在右上角显示小图标运行 GoAgent 不是很明白,ubuntu菜鸟求告知。
就是在通知栏右上角上有个图标,像键盘那样
问题是在没有翻墙前, 到哪底又能先下载google_appengine_1.9.12.zip呢? https://developers.google.com/appengine/downloads?hl=zh-CN 是打不开的
国内有很多热心人做镜像源的,用好搜索引擎就好。
为何我的chrome无法导入CA证书?一直显示unknown error?
百度了下面的方法:
1,安装证书导入工具:
sudo apt-get install libnss3-tools
2, 将goAgent文件夹内的证书文件CA.crt导入(下面中括号内是证书的绝对路径,因人而异,注意)
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n “goagent” -i [/path/to/goagent/local/CA.crt]
还是导入不了,好郁闷,ubuntu
另外,如果用命令指示符装证书一直显示: unable to open “/goagent/local/ca.crt” for reading (-5950, 2).
只有进到local目录,才能读到文件,但是又显示 bad datasheet
接着用sudo,就没显示啥了。
但是还是导入不了证书
gae现在是备用的了,很多网站直接屏蔽了其访问,所以现在都直接上vpn
请问如何设置
沙发
哥哥,你那些下载好了的包能直接舔个附件没有?去google被墙了阿
我非常喜欢这个wordpress主题,但是它不支持自定义菜单,你是怎么弄得啊? 给教一下好吗
我的邮箱是 729173164@qq.com
看到我的评论,加一下好友 ,多谢啦
Google AppEngine 也被墙了得嘛~~ 这个方法不好使了~
现在这个项目已经转移了 hoho
求解决啊,照着弄一直是这
“Traceback (most recent call last):
File “proxy.py”, line 1496, in
class AdvancedProxyHandler(SimpleProxyHandler):
File “proxy.py”, line 1511, in AdvancedProxyHandler
openssl_context = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
AttributeError: ‘NoneType’ object has no attribute ‘SSL’
Exception KeyError: KeyError(3067426652L,) in ignored
“
好像现在的goagent上传application一直会报下面的问题,请问有没有一些意见/建议?
Starting update of app: ********, version: 1
Scanning files on local disk.
Cloning 4 application files.
Uploading 1 files and blobs.
Uploaded 1 files and blobs
Compilation starting.
Compilation completed.
Starting deployment.
2015-01-11 16:49:33,083 ERROR appcfg.py:2128 An unexpected error occurred. Aborting.
Traceback (most recent call last):
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 2114, in DoUpload
app_summary = self.Commit()
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1905, in Commit
app_summary = self.Deploy()
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1957, in Deploy
result = self.Send(‘/api/appversion/deploy’)
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1698, in Send
return self.rpcserver.Send(url, payload=payload, **self.params)
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appengine_rpc.py”, line 365, in Send
f = self.opener.open(req)
File “/usr/lib/python2.7/urllib2.py”, line 404, in open
response = self._open(req, data)
File “/usr/lib/python2.7/urllib2.py”, line 422, in _open
‘_open’, req)
File “/usr/lib/python2.7/urllib2.py”, line 382, in _call_chain
result = func(*args)
File “/usr/lib/python2.7/urllib2.py”, line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File “/usr/lib/python2.7/urllib2.py”, line 1187, in do_open
r = h.getresponse(buffering=True)
File “/usr/lib/python2.7/httplib.py”, line 1045, in getresponse
response.begin()
File “/usr/lib/python2.7/httplib.py”, line 409, in begin
version, status, reason = self._read_status()
File “/usr/lib/python2.7/httplib.py”, line 373, in _read_status
raise BadStatusLine(line)
BadStatusLine: ”
Rolling back the update.
Traceback (most recent call last):
File “uploader.py”, line 103, in
main()
File “uploader.py”, line 86, in main
upload(‘gae’, appid)
File “uploader.py”, line 69, in upload
appcfg.main([‘appcfg’, ‘update’, dirname])
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 3873, in main
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 2443, in Run
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 3638, in __call__
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 2865, in Update
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 2854, in UpdateVersion
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 2114, in DoUpload
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1905, in Commit
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1957, in Deploy
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appcfg.py”, line 1698, in Send
File “/home/erick/Projects/goagent/server/google_appengine.zip/google/appengine/tools/appengine_rpc.py”, line 365, in Send
File “/usr/lib/python2.7/urllib2.py”, line 404, in open
response = self._open(req, data)
File “/usr/lib/python2.7/urllib2.py”, line 422, in _open
‘_open’, req)
File “/usr/lib/python2.7/urllib2.py”, line 382, in _call_chain
result = func(*args)
File “/usr/lib/python2.7/urllib2.py”, line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File “/usr/lib/python2.7/urllib2.py”, line 1187, in do_open
r = h.getresponse(buffering=True)
File “/usr/lib/python2.7/httplib.py”, line 1045, in getresponse
response.begin()
File “/usr/lib/python2.7/httplib.py”, line 409, in begin
version, status, reason = self._read_status()
File “/usr/lib/python2.7/httplib.py”, line 373, in _read_status
raise BadStatusLine(line)
刚才进这个页面刷新了N次都是链接被重置….是不是有被G*W认证的危险啦……..
不要把我整个博客认证了就好 Orz
还有就是感觉GA不如SS好用 SS在服务器配置好之后直接客户端跑个py脚本就行而且是socks5 GA好像只能代HTTP?
嗯,自己现在也都是 FqRouter / GoAgentX 跑 SS 了。 GoAgent 只作为备用。
博主,求linux shh翻墙教程
Goagent Windows版的可以直接拿到Ubuntu下跑吧
goagent goproxy xx-net 的服务端可以共用的对吗?
goagent goproxy xx-net 的服务端可以共用的对吗?