说起那事儿很多志士仁人选择了GoAgent,我之前都是用我的VPS连ssh来搞的。在Mac上面用autossh+launchctl+pac的方案基本上也可以无视那事儿了,但是苦于VPS在美帝,速度总是上不去。

今天蛋疼搞了一下GoAgent,太神啦。好快!用的是@ohdarling88老爷的牛屄GUI客户端GoAgentx,带部署GAE服务功能,还支持ssh什么的。反正你们去看看就知道了。

GUI

搞定以后上了一下测试了一下bitsnoop,竟然跳转到127.0.0.1了。各种调试无果,心想GoAgent不会有这个诡异的情况吧。结果关了GoAgent就好了。Google了一下,很多人碰到了这个问题。有人说是google“封”了bitsnoop。

Privoxy和2.0.2版的GoAgent配合也有问题(为了解决Dropbox的同步)。

于是我保留了两种干那事儿的方案。原来的SSH依然用autossh保持连接,让bitsnoop和priboxy分流走这个通道。

开始我在GoAgentX中设置选择不修改系统代理设置然后在系统中用自己修改的pac。除了bitsnoop走ssh,其他需要代理的走GoAgent。

这样的坏处是修改配置比较麻烦,每次都要打开编辑器什么的,没有在GoAgentX中设置来的方便。

后来看了下GoAgentX,看到有个pactemple.pac的文件,用base64编码过的。解码后做了一点自己的修改:

function FindProxyForURL(url, host) {
  var PROXY = "PROXY 127.0.0.1:8087";
  var DEFAULT = "DIRECT";
  var SOCKS_PROXY = 'SOCKS5 127.0.0.1:7070; SOCKS 127.0.0.1:7070; DIRECT';  //自己的代理
  
  function socksProxyDomains (url, host) {
	if (false
		|| shExpMatch(host, "*bitsnoop.com")) {
		return true;
	}

	return false;
  }
  
  if (socksProxyDomains(url, host)) {
	return SOCKS_PROXY;
  }
  
  
}

然后在base64一下,替换app里面的这个文件就可以了。

然后我打算看看GoAgentX的源码,加个第二代理的设置进去。