本文发自 http://www.binss.me/blog/play-kancolle-with-Chrome-SwitchyOmega-Logbook-Polipo-ShadowsocksX/,转载请注明出处。

不知不觉中,新一年的春活又到了,又到了爆肝的日子了!由于目前手头已有一台日本的linode,所以这次就不用蛋疼地用虚拟机+岛风go来做代理了。我希望直接使用shadowsocks来代理(MAC下为shadowsocksX)。

思路如下:

Chrome(舰娘页面)-> SwitchyOmega(定向转发)->航海日志(数据统计后转发)->ShadowsocksX(代理)

首先在SwitchyOmega中添加一个名为航海日志的情景,代理协议为http,代理服务器为127.0.0.1,端口为8888(航海日志的默认端口)。

然后在航海日志设置中设置代理服务器为127.0.0.1,端口为1080(ShadowsocksX的端口)。

然后开跑~啊咧?

代理出错了,观察Shadowsocks日志,发现报错:unsupported cmd:55

经过搜索,网上说经过航海日志的是http请求,而Shadowsock做的是socks5的代理,需要把http转成socks5才能代理。

继续搜索,发现Polipo这个工具可以满足该需求,于是安装配置之:

sudo brew install polipo

安装后,修改~/Library/LaunchAgents/homebrew.mxcl.polipo.plist为如下内容(其实就是加一行):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.polipo</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/polipo/bin/polipo</string>
      <string>socksParentProxy=localhost:1080</string>
    </array>
    <!-- Set `ulimit -n 20480`. The default OS X limit is 256, that's
         not enough for Polipo (displays 'too many files open' errors).
         It seems like you have no reason to lower this limit
         (and unlikely will want to raise it). -->
    <key>SoftResourceLimits</key>
    <dict>
      <key>NumberOfFiles</key>
      <integer>20480</integer>
    </dict>
  </dict>
</plist>

保存,执行以下命令:

$ ln -sfv /usr/local/opt/polipo/*.plist ~/Library/LaunchAgents/
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.polipo.plist

访问:http://127.0.0.1:8123/polipo/config,如果访问成功,查看配置是否生效

代表已生效。此时通过8123的http请求会转换为socks5的请求并转发到1080端口(shadowsock)。

然后别忘了修改航海日志的代理端口为8123。

嗯,成功登录,大功告成。