这里整理一些由于我国国情导致的导致的生产环境恶劣的问题
- 环境:Arch Linux
解决墙的问题一般也就是梯子,而梯子的原理则是开两个服务,一个跑在远端vps,一个跑在本地,中间通信加密。我常用的梯子是sock5协议的shadowsocks
proxychain
arch下的安装:sudo pacman -S proxychains-ng
,修改配置:cat /etc/proxychains.conf
,假设我们的本地代理跑在127.0.0.1:1080[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 127.0.0.1 9050
socks5 127.0.0.1 1080
运行firefox:proxychains firefox
,使用代理打开浏览器。
Cow
golang.org也被墙了,下载一些开发库的时候,这些库可能直接或者间接引用了 golang.org/x/...
等依赖库, 通过go get
命令确没有办法下载下来。
解决问题的方法是https代理,然而shadowsocks只能开启socks5代理,shadowsocks_go的作者还写了另一个工具:cow ,可以在本地开启一个https代理服务器,作为ss的二级代理。
下载:curl -L git.io/cow | bash
,修改配置~/.cow/rc
:#假设sss代理是1080
listen = http://127.0.0.1:7777
proxy = socks5://127.0.0.1:1080
此时相当与127.0.0.1:7777
开启了一个https代理。
然后设置环境变量,就可以go get被屏蔽的库了。export http_proxy=http://127.0.0.1:7777
export https_proxy=http://127.0.0.1:7777
privoxy
这是archwiki上推荐的一款工具,类似cow可以转化socks5协议为https,安装:sudo pacman -S privoxy
,配置:#本地socks5监听
forward-socks5 / 127.0.0.1:1080 .
#默认https监听8010
listen-address 127.0.0.1:8010
然后以守护进程启动:sudo systemctl start privoxy
sudo systemctl enable privoxy
此时只需要https_proxy=127.0.0.1:8010 http_proxy=127.0.0.1:8010
作为前缀运行shell中的命令即可开启代理