前段时间需要炼丹,为了追求效率,直接在腾讯云上面租用了一台有A100显卡的云服务器(抢占型打二折,大概6CNY/小时)。但是炼丹过程中有个包在首次使用时强制地从GITHUB上下载一些必要的文件,因为国内服务器特殊原因,下载基本上在个位数kb/s,造成了极大的浪费。虽然该包完全开源,但是修改源代码等手段过于复杂,最终还是选择了等它慢慢下完……
当然,这类问题可以依靠TUN/TAP的代理工具解决。但是实际上使用这些工具会带来更多麻烦,就在这时,一个清凉的解决方案GG(go-graft)(https://github.com/mzz2017/gg/)横空出世。
安装简单,配置也简单。最重要的是能够从网络较为友好的地方下载,不需要为了这个工具再套一层代理。
使用
它的使用很简单,从前从github顺畅的拉取各种东西需要各种麻烦的配置代理。现在只需要运行:
gg git pull
然后就可以通过预先配置的代理(支持订阅链接)来拉取资源,极大的方便了各种在特殊网络环境的特殊需求。
注:首次使用会进行自动测试,如果使用时出现网络问题导致卡住等情况,请参阅下文 #手动选择代理 章节
安装
GG是一个一键式的代理工具,它的安装和使用也极其方便。
sudo sh -c "$(curl -L https://hubmirror.v2raya.org/raw/mzz2017/gg/main/release/go.sh)"
运行完这串命令以后,重新打开shell,即可开始使用”gg”命令。
配置
基于警告框内的原因,你必须为gg设置一个订阅链接方可开始使用。
gg config -w subscription=<你的订阅地址>
随后就可以使用 “gg <需要被代理的命令>”
当然如果你认为配置订阅地址也太麻烦,或者你就是需要使用特别指定的代理进行操作,GG也支持。
gg --node <节点链接> <命令>
手动选择代理
一般情况下gg在第一次使用后会自动测试并选取可用的代理。
如果订阅含有的代理不是很稳定,请在使用前使用以下命令:
gg --select curl ip.sb
随后gg将会再次获取订阅,测试,并允许用户手动再指定一个代理。
另类用法:直接启动一个被完全代理的bash
[email protected]:~# gg bash
[email protected]:~# curl ip.sb
103.138.[censored]
不足之处
gg强制被代理的对象UDP/TCP流量走代理以避免DNS污染,但是这同样会导致在国内/内网端的资源访问异常。
这个问题在类似于clash的工具可以通过设置规则解决,但是gg作为轻量的解决方案,目前没有看到计划支持规则代理,未来可能也没有。
例如文首的环境,使用gg代理apt-get指令则会导致腾讯内网源无法访问。如果通过公网访问可用的源。速度受限于代理环境与公网带宽,或者产生流量费用。
基于上述原因,如果是需要安装python/npm包,在通常情况下,配置了类似于清华源的国内镜像无疑是更好的选择。