首先一切的前提是你已经部署、配置完毕GoAgent和Shadowsocks的服务端和客户端,GoAgent使用默认本地端口8087,而Shadowsocks本地端口假设为8198。用shadowsocks要有自己的服务器,不过Windows下的客户端shadowsocks-gui提供了一个免费的公共代理。不多说进入正题:
(不懂怎么部署shadowsocks?看这里:shadowsocks – libev 服务端的部署)
如下图,在SwitchSharp的配置中新建情景模式,HTTP、FTP为未加密连接可填入Goagent的代理端口配置,而在SOCKS代理中填入Shadowsocks的端口号,如此一来,HTTPS就会自动走shadowsocks,未加密流量就会走goagent,从而不用导入GoAgent CA证书,解决某些强迫症患者的特殊需求。
此种配置成功与否的检测方法:切代理情景模式为混合模式,开启goagent本地客户端的前台命令行窗口,如果访问http站点,上面就会刷代理过的内容,如果访问纯https站点(推荐G+、youtube、twitter测试)且走的是shadowsocks的话,goagent那里不会有任何新的内容刷出,这样就证明成功了。还有就是shadowsocks必须保持可用,否则此种方式会导致连接前期直连不走代理,大部分被照顾的站点就是TCP_Reset。
而为什么要这样配置呢?下面解释一下:
GoAgent受限于GAE,不能真正代理HTTPS,而用的是伪HTTPS,替换了原有站点的证书,如果你没有导入根证书,你用打开twitter这类强制https的站点就会被浏览器阻止并收到警告,比如说Chrome会提示你:
此时点击“更多”后可以看到(如下图红色箭头),证书颁发机构编程了GoAgent CA,也就是GoAgent替换了原来的服务器证书。
而这样会带来一些安全隐患,虽然概率很小不过私钥泄露这种事情如果发生后果一般都是很严重的。不清楚证书安全性的可自行维基百科搜索一下证书。不过使用此方法带来的问题就是HTTPS的降速,除非你有速度良好的国外VPS,因为大部分国外服务器代理速度都拼不过GAE的。
引用: 玩转 Shadowsocks - 本博客文章合集目录 - 飞羽博客
引用: 常用科学上网方法介绍 | 思锐天空
引用: 在VPS上搭建自己的ss服务端 | 第二天堂 – Log@X.X.B