#解决方案 Socks5 + Privoxy 思路就是, 建立一个本地sock5代理, 但因为go get 需要http代理, 所以需要使用privoxy把sock5代理转为http代理. ## shadowsock ``` sudo apt-get install python-pip sudo pip install shadowsocks ``` 找到:sslocal(sudo find / -name sslocal) 这个命令所在的目录, 将sslocal软链接到/bin中. ``` sudo ln -s /usr/local/bin/sslocal /bin/sslocal ``` 之后找个目录新建个文件startSslocal.sh, 将下面的内容写到里面, 将ip, port, password替换为自己的shadowsock的配置.(其余配置不需要管,使用默认即可) ``` #!/bin/bash sslocal -s ip -p port -k "password" ``` 然后就是设置startSslocal.sh开机自动启动, 编辑/etc/rc.local, 将下面内容(按情况修改为你自己的)写到rc.local中 ``` nohup bash /home/tom/shadow-sock/startSslocal.sh>/home/tom/shadow-sock/startSslocal.log & ``` 重新启动, 如果startSslocal.log中的日志为: ``` 2015-11-08 22:36:34 INFO loading libcrypto from libcrypto.so.1.0.0 2015-11-08 22:36:34 INFO starting local at 127.0.0.1:1080 ``` 则证明ubuntu目前已经启动好了sock5的代理, 代理为: 127.0.0.1:1080. 此时如果配合SwitchyOmega, 配置一下sock5的代理, 则可以完成类似之前goagent的自动科学上网(PS:在此沉痛悼念下goagent同志). #使用Privoxy将sock5代理映射为http代理. 安装Privoxy ``` sudo apt-get update sudo apt-get install privoxy ``` 配置Privoxy, 打开 /etc/privoxy/config, 注释掉 ``` listen-address localhost:8118 ``` ``` #listen-address localhost:8118 ``` 在最后一行后边加上 ``` forward-socks5 / 127.0.0.1:1080 . listen-address 127.0.0.1:8118 ``` 然后重启Privoxy ``` sudo service privoxy restart ``` 这样就完成了sock5到http代理的映射 然后就可以配置全局http proxy, sudo vi /etc/environment, 加入下面的代码 ``` export http_proxy=http://127.0.0.1:8118 export https_proxy=http://127.0.0.1:8118 ``` 当然也可以只对当前命令行设置http_proxy, 在当前窗口执行上面的代码即可(使用全局配置, 可以在安装 vim插件时也生效,如GoInstallBinaries) 重启机器 ``` sudo shutdown -r now ``` 尝试一次不纯洁的go get ``` go get golang.org/x/net/publicsuffix ``` 应该可以无错误运行.有错误我也没办法了~~~~ 生活在天朝当个码农真心不容易 #参考链接: http://1.guotie.sinaapp.com/?p=802 http://www.chenxuanyi.cn/privoxy-socks-http.html http://www.mokeedev.com/2014/07/23/syncandroidsource/