最近 Shadowsocks 作者 clowwindy 被喝茶然后清空了他的整个项目代码。一周后goagent也悄悄清空了所有的项目代码。Github又一次受到大规模DDOS攻击。
在是时候使用 PAC 白名单了一文当中我给大家介绍了一个反gfwlist道而行的白名单PAC,它不同于前者对GFWed域名做匹配,而是对未GFWed的域名匹配……好吧,我个人也很赞同作者的想法——如今使用白名单才是趋势。
总之,对于想要使用自定义PAC的人来说,一个一体化设置的工具是必不可少的——毕竟,我们还是习惯图形化的操作界面。
悄然消失的GoAgentX
在我们被近期的一系列“大事件”闹的人心惶惶的时候,OS X 下简单又好用的 GoAgentX 却早就悄然消失在了人海之中。我手里的版本是 2.3.7 ,可能这就是它的最后一个版本吧——我没有找到更新的版本。
它的官网已经打不开,而 Github 中的项目代码也早就被清空了。不过值得欣慰的是,这个最后的版本目前即使实在 10.11 上也跑的不错——唯一的缺点可能就是打开的时候防火墙会提示联网(可能签名过期了吧)。
继续使用
不过,如果你不使用 OS X 自带的防火墙的话,那你就不需要面对这个对话框了——我推荐你打开它。
GoAgentX 支持好几种代理的服务,可以智能开启和切换(如果端口相同则切换)服务,而且这些服务都是以插件的形式来加入的——这意味着我们仍旧可以给GoAgentX里使用的服务进行升级。所以,在主程序完全不能使用之前,我们仍旧可以继续使用它而不用担心过时。
PAC 的配置
关于PAC的配置这里不再赘述,我们使用 GoAgentX 就是为了用那个白名单,不然使用 ShadowsocksX 岂不更加酸爽。所以,请参考 是时候使用 PAC 白名单了 。
更新服务
GoAgentX 已经没有人维护了,所以更新按钮再也不能用了,我们无法升级主程序,但可以手动升级插件。你只需要访问 /Applications/GoAgentX.app/Contents/PlugIns 就可以看到插件了。我们同样用鼠标点击右键来“显示包内容”。
更新 Shadowsocks
虽然我们前文说了 SS 的项目文件已经被清空,但无论如何,这是个开源项目,so……
GoAgentX 为了方便吧可能,默认用的并不是 SS 主项目,而是一个延伸项目 shadowsocks-libev (实际上在插件的目录里面有三个版本的 SS,你可以在高级配置里任意切换,这里我们只使用还在更新维护的 ss-libev)所以,我们还是可以对其进行更新的。在 GoAgentX 上它的版本号还是2.3,而实际上这个却是 SS 的主版本号……?
考虑到编译是一件很麻烦的事情,我们选择从 Homebrew 里提取, brew 是 OS X 里类似 Linux 中的 apt-get 或者 yum 的包管理系统,如果你不知道它是什么,——来这里看看。
我们使用如下命令来安装 brew。
1 |
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
注意
要安装 brew,你得先安装 Xcode。——就算你选择下载源码进行编译,也得需要 Xcode。
使用命令 brew install shadowsocks-libev 来安装它,然后就可以去 /usr/local/Cellar/shadowsocks-libev/2.3.0/bin 下把 ss-local 拷贝出来替换掉 /Applications/GoAgentX.app/Contents/PlugIns/shadowsocks.gxbundle/Contents/Resources/bin/libev/ss-local 啦!
另一个更新的办法
这里,感谢 xsharp 同学,他为我们更新 SS 客户端提供了新的思路,由于 SS-libev 版本其实已经安装到了你的系统当中,我们也可以让 G oAgentX 直接使用系统中安装的 SS 而不是它插件里的 SS ,这样连上边复杂的替换也省了:
找到 /Applications/GoAgentX.app/Contents/PlugIns/shadowsocks.gxbundle/Contents/Resources/bin/libev/ss-local ,把它删掉,然后使用如下命令创建一个空文档:
1 |
touch /Applications/GoAgentX.app/Contents/PlugIns/shadowsocks.gxbundle/Contents/Resources/bin/libev/ss-local |
编辑这个文档,写入如下代码:
1 2 |
#!/bin/bash ss-local $@ |
然后使用 chmod +x /Applications/GoAgentX.app/Contents/PlugIns/shadowsocks.gxbundle/Contents/Resources/bin/libev/ss-local 来给它加上可执行权限。
这样的话,gx就会调用系统的 SS 而不是自带的插件里的 SS了。以后更新,也不需要重复去拷贝文件了。
另外,如果你想要其他新的性能参数比如 一次性验证,那么就这样写:
1 2 |
#!/bin/bash ss-local $@ -A |
收尾工作
为了让 GoAgentX 插件页面也能显示出正确的版本号(你要是不 care 这些细节,就可以不看这里了),我们修改如下文件:
1 |
/Applications/GoAgentX.app/Contents/PlugIns/shadowsocks.gxbundle/Contents/Info.plist |
在里边找到版本号字符串,修改为对应的最新版本即可:
更新 COW
我们来更新 cow,cow 也是一个开源项目,它能自动根据你的访问来判断网站是否被墙,如果被墙,则自动使用二级代理来访问,久而久之,cow 会根据你的浏览行为学习到各种被墙的网站,就好像自动生成的 gfwlist。以下是作者写的介绍:
COW 是一个简化穿墙的 HTTP 代理服务器。它能自动检测被墙网站,仅对这些网站使用二级代理。
我个人不推荐你在公共场合使用 cow,这一点我会再说。不过,对于要在 GoAgentX中使用 COW 的人来说(GoAgentX里真的很方便!)跟新下 COW 还是很有必要的。
首先,我们使用 curl -L git.io/cow | bash 来下载最新版本的 COW,对于 Install cow binary to which directory 这个问题,我们直接按回车保存它到当前目录;对于 Start COW upon login? (If yes, download a plist file to ~/Library/LaunchAgents) [Y/n] 这个问题要留意,我们目的在于提取cow程序文件,而不是直接安装,所以要输入 n来取消自动启动。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
╰─➤ curl -L git.io/cow | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 100 134 0 134 0 0 31 0 --:--:-- 0:00:04 --:--:-- 141 100 4072 100 4072 0 0 749 0 0:00:05 0:00:05 --:--:-- 14594 Install cow binary to which directory (absolute path, defaults to current dir): No installation directory given, assuming current directory Start COW upon login? (If yes, download a plist file to ~/Library/LaunchAgents) [Y/n] n Downloading cow binary http://dl.chenyufei.info/cow/0.9.6/cow-mac64-0.9.6.gz to /tmp/cow.Zg0ESL/cow.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1595k 100 1595k 0 0 150k 0 0:00:10 0:00:10 --:--:-- 171k Move /tmp/cow.Zg0ESL/cow to /Users/logcg (will run sudo if no write permission to install directory) Update finished. |
这时你的目录下(默认应该是 /~ )就有了 cow 的程序文件:
我们去 GoAgentX 的插件目录里(进入方法见上文),找到 COWService.gxbundle,用鼠标点击右键来“显示包内容”,具体的路径如下:
1 |
/Applications/GoAgentX.app/Contents/PlugIns/COWService.gxbundle/Contents/Resources/bin/cow |
我们把此 cow 替换为彼 cow 即可。
收尾工作
为了让 GoAgentX 插件页面也能显示出正确的版本号,我们修改如下文件:
1 |
/Applications/GoAgentX.app/Contents/PlugIns/COWService.gxbundle/Contents/Info.plist |
在里边找到版本号字符串,修改为对应的最新版本即可:
找不到 cow 版本?
1 2 |
╰─➤ ./cow --version cow version 0.9.6 |
更新 GoAgent
Goagent 这个博主不用,so…………新版变化挺大的,懒得搞了,给大家推荐个替代的xx-net
- 集成 GoAgent、GoGoTest 等自动扫描 IP,省事省力
- Web 界面,人性化交互,傻瓜易用
- 内置了公共 appid, 方便新手
- 方便易用的细节、细节提示
更新 Stunnel
Stunnel 也是一个非常不错的代理选项,GoAgentX 里附带的版本为 4.56,而最新的版本已经 5.22,我们在使用它之前也有必要来对它进行一下升级。
去官网下载最新版来编译是个不错的选项,不过过于麻烦,我们选择从 Homebrew 里提取。使用 brew install stunnel 来安装 stunnel,这样安装完整之后就可以在 /usr/local/Cellar/stunnel/5.22/bin 中找到 stunnel 的程序文件了!
我们把它复制到 /Applications/GoAgentX.app/Contents/PlugIns/StunnelService.gxbundle/Contents/Resources/bin/ 即可。
收尾工作
同样编辑对于的 /Applications/GoAgentX.app/Contents/PlugIns/StunnelService.gxbundle/Contents/Info.plist 文件来修改它的版本号:
本文由 落格博客 原创撰写:落格博客 » GoAgentX 的 后续 维护及使用
转载请保留出处和原文链接:https://www.logcg.com/archives/1296.html
Sierra里可以使用未修改的原版GoagentX2.3.7,我目前就是这样。修改版的确实不能用。
请问brew install shadowsocks-libev时报错:需要安装prerequisite,安装到xz时提示cannot run C compiled programs,这个问题有解决办法吗?
请尝试安装 Xcode 7
我有装啊。。7.3.1。。。
可能因为我在用sierra的关系。。。?
确实,brew一般对测试版的OSX都兼容不良的。
真的哭了。。。sierra里GAX的SS不能用,别人说更新一下里面的SS插件就能用。。。结果只能滚回去shadowsocksX了。。。
直接修改app里面的内容,肯定是会破坏证书的,自然会一直提示联网……
求一个2.3.7的源代码,我在网上貌似找不到,都是老版本的,感谢
邮箱:
NDA4NDg3ODMzQHFxLmNvbQ==
2.3.7我也没有源码,只有一个编译好的文件。这个文件本身就证书失效,一直提示联网,我用自己的证书重新给签名也不行。能不用还是不用了吧,goagentX网上没有最新的源码,它真的要离去了。现在我用surge mac,如果你用的话我可以把我的配置文件发你一份。 :)
谢谢~
你可以用
‘codesign -v /Applications/GoAgentX.app’
来检查一下原本的签名是否被破坏,如果没有问题则直接返回。
用
‘codesign -dvvvv /Applications/GoAgentX.app’
来检查当前的签名信息,我的版本打开不会出现联网提示,一般出现这个提示很大可能就是bundle被(恶意?)修改了。
我有surge mac,但是它没有ssh 代理,这个代理可以利用公司公网ssh搭梯子进公司内网,vnc自己的电脑什么的很方便。对我来说goagentx确实是无可替代的。
是的,没有任何问题,可能我这个版本就是个测试版,因为网上现在也找不到这个版本了。ssh的化可以直接用命令或者脚本啊~我不用那个命令,因为用来翻墙的话会被检测出来然后屏蔽的。我用ssh都是直接命令行配置:) surge专门用来翻墙。而且,我还专门为此维护(其实现在是借鉴前辈的列表了)了一个翻墙白名单规则,十分好用哈哈。
因为我们公司有很多内部web服务,所以用ssh转socks 代理就可以直接用浏览器打开咯,而且在命令行用proxychains4g可以直接从内部git pull出来,而不用先git clone到中间服务器再scp出来,省了不少时间,其实都是个人需求吧。
我的白名单是从这里pull的:
https://github.com/breakwa11/gfw_whitelist
每天schedule git pull 可以实现自动更新,如果有自己定义的网站话可以加入自动shell脚本merge 一下,不用自己维护。
话说你的博客真不赖,作为一个不会html的开发者觉得太酷了。
那你可以看看我的白名单https://github.com/R0uter/gfw_domain_whitelist 我这个博客用Wordpress搭建的,我也不会,顶多安装一些插件优化一下,倒是后台做了不少优化,哈哈。
如果我是你,我就直接vpn了……嘿嘿。简单又省事。
大神!已follow
XD 果酱果酱,我也是按照大神的结果改改格式罢了。我本来自己写了一个爬虫的,但由于已经有前人了我就取消了那个爬虫项目转而使用了大神这个,列表已经很全面啦。现在的问题就是怎么找到方法来根据网站的流行程度缩减列表体积。
负载均衡的点子不错,但是会降低可用性,连不上的几率大大增加……可以想想怎么提高可用性,要是能周期性自动测试代理列表并选出丢包率最小的作为默认pac就好了。
确实,当时给破娃酱提交的时候她也这么说的,尤其是几条线路速度不一样的时候,用起来会非常的……2.可惜我JavaScript并不厉害,我考虑考虑将来继续探索。其实现在我自己并不用这个PAC,只是用了白名单列表,之前用的时候后来也把负载均衡给关了用的嘿嘿。等有空了我试试看。
你好,请问您还有 2.3.7 的源码吗?
如果有,我就自己维护了,很遗憾,目前全网也找不到呢。
Google Code 和 GitHub 上现在只有 1.3 的源码,2.x 只有 dmg 和 xml 文件。
是的呢……好在现在用leve4可以代替——哦,可能还得等几个月吧才能支持ss。如果过段时间它不支持,我会考虑自己写一个管理器,毕竟我也在用这个的:)
如果要 ss-local 支持 OTA (-A), 有和思路?新建一个名为 ss-local 的 shell 文件? 在该 shell 中加上 -A 参数,然后其他参数都转发到原始的 ss-local。像这样:
#!/bin/bash
ss-local $@ -A
我去想想看,有必要使用一次性验证?你说的这个偷天换日的方法可能得写一个二进制而不是shell,如果有成果,我会再次回复你的:)
我想我找到方法了,可以为gx添加所有ss能支持的新特性,希望你联系我:)
呃,我上面回复中的方法就可以的,亲测,多简单啊。
那能被关闭吗?我写那个不能被关闭,我去试试你这个方法……理论上应该不能够啊~~~
哈哈,你这个方法竟然能够被GoAgentX关闭,不过就直接调用了系统安装的SS客户端而不是gx插件里的了……也好,这样省得每次升级都要拷贝一遍啦!
——看起来我的服务商都没有支持一次性验证呢。
=。=好吧,高级功能不能使用模板来做,我用swift写了一个壳,理论上能支持所有参数了,缺点是必须手动关闭。我猜你的ss服务器是自己搭建的?我测试了下我的服务商都没有支持这个功能呢=。=|||总之,还是那句话“毕竟是能用的。”……
太感谢PO主了。果断收藏这篇。一直担心GoAgentX下架后后续插件没法更新。不知道是否有尝试过接入Meow?
我去研究了下,很遗憾,虽然meow天生完全支持cow,但唯一一点遗憾的是meow的配置文件目录改名为 .meow了,而gx配置cow的目录是 .cow,所以……我们没办法了。
如果非要配合 MEOW 的话,其实可以直接做为 MEOW 的二级代理,例如起一个 3proxy 服务,然后配置文件写死成 MEOW 的 IP 和端口。只是没什么意义,因为 Surge 以及类似的开源工具,同样可以做 MEOW 的二级代理,而且效果更好,并且要么商业化了要么开源,应该大部分情况下都能替代不再维护的 GoAgentX 了。
是,现在我也换Surge了,所以确实没去纠结GoAgentX接入Meow了。
刚看到 xsharp 的方法,完全可以用在 MEOW 上,直接把COW的Bundle里写个映射到 MEOW 的 shell 脚本,再 ln -s .cow .meow 即可,亲测有效
人才!思路不错!
还得先安装Xcode?话说没编译好的能直接替换的么?mac文件浏览器各种蛋疼,乔布斯当初就没想让用户直接操作文件,ios更是极端
没编译的程序当然就不能用啦,不过你可以尝试python版本,这样你得在配置里切换一下才行。你试试:)
或者,你也可以考虑去找找预先编译好的~
不对不对,我另外一台Mac不会有这个情况,不懂什么问题,非常诡异,我再研究研究
我发现一个问题就是, 我更新COW到0.9.6的版本没问题,但是更改了Info.plist文件里面的版本号,重启开机自启动的时候竟然就没有COW的服务了,非得改回0.9.3才正常
目前我没有遇到这个问题,可能是我更新后就没有继续使用cow吧……现在我去配置试试看,我的是0.9.6,如果重现问题,我会回来告诉你的:)
哈哈哈~~我没遇到这个问题,cow的自动探测我不喜欢,但是它的hash负载均衡很给力啊!我开了三个线路然后负载均衡,从此打开网页都是搜搜的。抓了下包,打开Twitter同时好走俩个线路,真是完美!
不行,我反复试过很多次,就是在Bundles标签页可以看到COW的版本是0.9.6没问题,但是在服务标签页点+号添加就找不到COW的选项,要不你把你的程序打包发给我试下
你是不是在配置里把cow给禁用了所以看不到?我现在又用回了cow配合自己手动写的列表……但还是不太好使,有时候cow还是会把黑名单的域名给直连,唉。
我感觉这个cow有时候确实有点问题,特别是用cow连接shadowsocks的时候速度不如原生的好,不知道你有没有GoAgentX2.3.7的源码,我想自己来维护
qq详述。
shadowsock组件里面的python模块怎么更新呢?
目测出了libev以外别的都没什么用,你就算删了也ok,它根本不调用啊……当然我也就没有去了解了。理论上你直接下载最新的来替换就好了。
不是在高级设置里面可以选择用libev还是python还是别的,我的也是2.3.7
是的可以选择,我是后来才发现的,不过现在只有c语言版还在更新了吧