获取github解析地址方法,GitHub Connection refused 无法访问
国内经常出现访问不了github情况, github给了一个获取ip地址的接口。
我们可以手动获取, 配置本机hosts解析,就可以访问了。
拉取代码时候
Failed to connect to github.com port 443 : Timed out
或
fatal: unable to access ‘https://github.com/xxx.git/': Failed to connect to github.com port 443: Connection refused
也可以解决这个问题。 或者是配置代理, (需要自己有代理地址。)
配置hosts方法
可以访问:
1 | https://api.github.com/meta |
返回内容是json格式,我们可以在里面找到 git 值,里面的IP地址我们可以配置到 /etc/hosts 中。
如:
1 | 20.199.39.232 github.com |
测试
测试命令,看看是否能连接
1 | ssh -vT git@github.com |
另外配置代理方法
git 配置代理,需要自己有代理可以访问出去。
全局代理
通过 git config --global
可以设置全局代理,命令及示例如下:
1 | # 设置代理,http 和 https 都加上代理,代理到 http://127.0.0.1:1087 这个 vpn 本地 IP |
本地代理
全局代理会将所有的 git 请求都使用这个代理,对于国内的或者公司内部的仓库,实际上是不需要的,加了反而拖慢速度。
故可以指定是 GitHub 的项目才走代理,其他的项目不走代理。
通过 git config --local
设置本项目代理,命令及示例如下:
1 | # 设置代理 |
按源代理
本地代理的不方便之处是,每个需要代理的 GitHub 项目都需要手工配置一次,实在麻烦。
所以可以通过直接修改 git 全局配置文件的方式,指定哪些请求源走代理,不指定的就不走代理。
修改全局 .gitconfig
配置文件(一般在 ~/.gitconfig
),增加如下代理配置即可。
1 | # 配置 http 代理 |