0%

关于墙的若干问题

这里整理一些由于我国国情导致的导致的生产环境恶劣的问题

  • 环境: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中的命令即可开启代理

Disqus评论区没有正常加载,请使用科学上网