终端加速 GitHub 方法的前置条件,

一是购买了加速服务或者租用 VPS 搭建加速服务,

二是系统是 macOS,

三是终端是 iTerm,

四是 Shell 是 zsh。

终端加速 GitHub,需要明确的是,http_proxy 和 https_proxy 的方法是无效的。最佳实践有两种方法,一是使用 proxychains,二是为 Git 配置代理。

终端加速 GitHub 方法一:使用 proxychains

1、关闭 SIP

macOS 10.11 后下由于开启了 SIP 会导致命令行下 proxychains 代理的模式失效,如果你要使用 proxychains 这种简单的方法,就需要先关闭 SIP。

具体的关闭方法如下:在恢复模式下,终端里输入 csrutil enable --without debug 来部分关闭 SIP.

 

恢复模式重启进入系统后,终端里输入 csrutil status,结果中如果有 Debugging Restrictions: disabled 则说明关闭成功。

2、安装 Proxychains

安装好 Homebrew 后,终端中输入 brew install proxychains-ng

将 /usr/local/etc/proxychains.conf 中的配置替换为

strict_chain
quiet_mode
proxy_dns
remote_dns_subnet
tcp_read_time_out
tcp_connect_time_out
localnet 127.0.0.0/255.0.0.0
localnet 10.0.0.0/255.0.0.0
localnet 172.16.0.0/255.240.0.0
localnet 192.168.0.0/255.255.0.0 [ProxyList]
http 127.0.0.1

然后在需要走代理的命令前加上 proxychains4 即可,如

proxychains4 brew update

当然,你也可以像我这样做个自定义配置,在 ~/.zshrc 末尾加入如下行:

alias fuckgfw='proxychains4'

上一条命令就是这样:fuckgfw brew update,是的,Fuck GFW!

终端加速 GitHub 方法二:为 Git 配置代理

Git 比较特殊,使用环境变量的方法并没有用,只有 proxychains 有效,如果不想使用 proxychains,可以对照本教程进行配置。

对于 HTTP/HTTPS 协议,比如 git clone https://github.com/github/hub.git,使用下面的命令为 github.com 域名配置代理。

git config --global http.https://github.com.proxy http://127.0.0.1:1235

对于 SSH 协议,比如 git clone git@github.com:github/hub.git,需要在文件 ~/.ssh/config 中添加

host github.com
ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1: %h %p

相应的配置完成后,git clone 就会使用代理了。

终端可以呼呼地使用 GitHub,那网页呢,也很简单,且听。

网页加速 GitHub 方法的前置条件,一是购买了加速服务或者租用 VPS 搭建加速服务,二是系统是 macOS 或者 Win,三是浏览器是 Chrome。

网页加速 GitHub 方法一:macOS + Chrome

macOS 使用 Chrome 访问 GitHub,可以使用 Surge for Mac 或者 GoAgentX,具体的教程就此打住。

网页加速 GitHub 方法二:PC + Chrome

PC 可以使用 Shadowsocks for Windows,然后 Shadowsocks 设置为全局代理,接着 Chrome 安装插件 Proxy SwitchyOmega,新建 Proxy Profile,选择 http,输入 127.0.0.1,端口为 Shadowsocks 代理的端口,最后 Chrome 点击 Proxy SwitchyOmega 图标,切换至新建的 Proxy Profile 即可。

GitHub 终端加速最佳实践的更多相关文章

  1. github中fork分支和pullrequest的最佳实践

    github中fork分支和pullrequest的最佳实践 */--> code {color: #FF0000} pre.src {background-color: #002b36; co ...

  2. GitHub 热点速览 Vol.23:前后端最佳实践

    作者:HelloGitHub-小鱼干 摘要:最佳实践,又名 best-practices,是 GitHub 常见的项目名,也是本周 Trending 关键词.25 年 Python 开发经验的 Dav ...

  3. (转)RESTful API 设计最佳实践

    原文:http://www.oschina.net/translate/best-practices-for-a-pragmatic-restful-api 数据模型已经稳定,接下来你可能需要为web ...

  4. RESTful服务最佳实践

    本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...

  5. mybatis 3.x源码深度解析与最佳实践(最完整原创)

    mybatis 3.x源码深度解析与最佳实践 1 环境准备 1.1 mybatis介绍以及框架源码的学习目标 1.2 本系列源码解析的方式 1.3 环境搭建 1.4 从Hello World开始 2 ...

  6. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...

  7. Gradle配置最佳实践

    https://blog.csdn.net/devilnov/article/details/53321164 本文会不定期更新,推荐watch下项目.如果喜欢请star,如果觉得有纰漏请提交issu ...

  8. RESTful服务最佳实践(转)

    原文:https://www.cnblogs.com/jaxu/p/7908111.html 译文作者:Jaxu 英文原文:https://files-cdn.cnblogs.com/files/ja ...

  9. AWS 架构最佳实践(十二)

    可靠性 基本概念 可靠性 系统从基础设施或服务故障中恢复.动态获取计算资源以满足需求减少中断的能力 系统为最坏情况做好准备,对不同组件实施缓解措施,对恢复程序进行提前测试并且自动执行. 可靠性实践 测 ...

随机推荐

  1. 【2018年12月05日】滚动市盈率PE最低排名

    深康佳A(SZ000016) - 滚动市盈率PE:1.69 - 滚动市净率PB:1.13 - 滚动年化股息收益率:4.31% - 消费电子产品 - 深康佳A(SZ000016)的历史市盈率走势图 新钢 ...

  2. 详解js中的apply与call的用法

    前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.call 和 apply二者的作用完全一样,只是接受 ...

  3. 个人Android开发习惯[转载]

    以下内容转载自牛人博客,很多牛叉内容,请点击:http://www.stay4it.com/?p=281 Android三年,现在写代码,真心没什么很大的兴趣,每天都是优化代码,优化框架,技术支持.非 ...

  4. PMP模拟考试-2

    1. Increasing resources on the critical path activities may not always shorten the length of the pro ...

  5. ios开发之--实现TextView提示文字并且输入字数限制

    实现字数控制和限制,并展示当前输入的字符串长度,以及按钮的点击状态,代码如下: 1,设置代理 @interface FKViewController ()<UITextViewDelegate& ...

  6. 在oracle配置mysql数据库的dblink

    本文介绍如何在oracle配置mysql数据库的dblink:虽然dblink使用很占资源:俗称“性能杀手”.但有些场景不得不使用它.例如公司使用数据库是oracle:可能其他部门或者CP合作公司使用 ...

  7. SpringBoot(三)-- 整合FreeMarker模板

    1.pom依赖 <!-- 引入freeMarker的依赖包. --> <dependency> <groupId>org.springframework.boot& ...

  8. [C] scanf - 格式输入函数

    scanf 函数称为格式输入函数,即把用户键盘输入的内容保存到指定的变量中. scanf 函数签名 scanf("格式控制字符串", 变量地址列表) scanf 函数是一个标准库函 ...

  9. codeblocks编译pthread多线程问题

    默认的编译选项是没有pthread的,所以要自己添加: 参考:http://hi.baidu.com/u_soa/item/9d6cc40b7e9d76eb3499024d 错误: undefined ...

  10. SVN的基本原理 配置自动更新WEB服务器

    SVN的基本原理 配置自动更新WEB服务器 最近有个小项目,需要用SVN来进行版本控制.项目组的同僚有8个人,大家都在本地开发,然后提交到服务器——服务器就是其中一台机器.专门安排一个测试员来进行项目 ...