获取github解析地址方法,connect to github.com port 443 无法访问

获取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
2
3
ssh -vT git@github.com

ssh -vT -p 443 git@github.com

另外配置代理方法

git 配置代理,需要自己有代理可以访问出去。

全局代理

通过 git config --global 可以设置全局代理,命令及示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 设置代理,http 和 https 都加上代理,代理到 http://127.0.0.1:1087 这个 vpn 本地 IP
git config --global http.proxy http://127.0.0.1:1087
git config --global https.proxy http://127.0.0.1:1087

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

# 查看代理
git config --global --get http.proxy
git config --global --get https.proxy

# 查看全局所有配置
git config --global --list

本地代理

全局代理会将所有的 git 请求都使用这个代理,对于国内的或者公司内部的仓库,实际上是不需要的,加了反而拖慢速度。

故可以指定是 GitHub 的项目才走代理,其他的项目不走代理。

通过 git config --local 设置本项目代理,命令及示例如下:

1
2
3
4
5
6
7
# 设置代理
git config --local http.proxy http://127.0.0.1:1087
git config --local https.proxy http://127.0.0.1:1087

# 取消代理
git config --local --unset http.proxy
git config --local --unset https.proxy

按源代理

本地代理的不方便之处是,每个需要代理的 GitHub 项目都需要手工配置一次,实在麻烦。

所以可以通过直接修改 git 全局配置文件的方式,指定哪些请求源走代理,不指定的就不走代理。

修改全局 .gitconfig 配置文件(一般在 ~/.gitconfig),增加如下代理配置即可。

1
2
3
4
5
6
7
# 配置 http 代理
[http "https://github.com"]
proxy = http://127.0.0.1:1087

# 配置 https 代理
[https "https://github.com"]
proxy = http://127.0.0.1:1087
感谢您的支持!