Linux 实现终端代理
极客学长 2019-01-21 0
terminal
proxy
Filecoin
最近在折腾 Go 语言的时候,经常需要使用 go get 来下载和安装第三方库或软件。
经常会碰到 go get 无法访问,之前在编译 Filecoin 和 EOS 项目的时候也常常因为无法 clone
Github 上的一些开源项目(如 MongoDB) 而导致编译失败,
因为这些第三方库或软件或项目对应的网站在国内无法访问,或者访问速度比较慢。所以设置一个终端代理就变得非常有必要了。
**原理:**很多人都代理软件是基于 socks5 协议的。而
go get
和git clone
都是使用 http 协议。所以我们需要一个中间代理,把 socks5 协议转为 http 协议。
在 Github 上找到一个牛人开发的项目 cow (opens new window), 安装之后简单配置就可以使用了。
COW 的设计目标是自动化,理想情况下用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。
- 作为 HTTP 代理,可提供给移动设备使用;若部署在国内服务器上,可作为 APN 代理,可使用多个二级代理,支持简单的负载均衡
- 支持 HTTP, SOCKS5 和 cow 自身作为二级代理
- 自动检测访问速度,仅对访问不流畅的网站使用二级代理
- 自动生成包含直连网站的 PAC,访问这些网站时可绕过 COW
安装方式非常简单, Linux 和 OSX 系统直接执行下面的命令:
curl -L git.io/cow | bash
修改配置文档 vim ~/.cow/rc
#开头的行是注释,会被忽略
# 本地 HTTP 代理地址
# 配置 HTTP 和 HTTPS 代理时请填入该地址
# 若配置代理时有对所有协议使用该代理的选项,且你不清楚此选项的含义,请勾选
# 或者在自动代理配置中填入 http://127.0.0.1:7777/pac
listen = http://127.0.0.1:7777
# SOCKS5 二级代理
proxy = socks5://127.0.0.1:1080
# HTTP 二级代理
#proxy = http://127.0.0.1:8080
#proxy = http://user:password@127.0.0.1:8080
# cow 二级代理
#proxy = cow://aes-128-cfb:password@1.2.3.4:8388
修改 vim ~/.bashrc
,在文件末尾加上下面代码,导出环境变量
export http_proxy=http://127.0.0.1:7777
export https_proxy=http://127.0.0.1:7777
然后启动你本机的代理软件。
至此,恭喜你,你的终端可以很流畅的访问 Github 了。
本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01