解决 GitHub Connection refused 无法访问

背景

当我们在向 GitHub 推送代码的时候,经常会遇到推不上去的情况,往往提示的是:

bash 复制代码
fatal: unable to access 'https://github.com/xxx.git/': Failed to connect to github.com port 443: Connection refused

或者是

bash 复制代码
Failed to connect to github.com port 443: Timed out

以上两种情况,大概率是 GitHub IP 无法访问导致的,通过设置代理可以解决此问题。

代理配置

有了 VPN 代理后,设置 git 命令的代理配置,有三种代理方式。

  • 全局代理
  • 本地代理,按项目设置代理
  • 按源代理,按请求地址设置代理

全局代理

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

bash 复制代码
# 设置代理,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 设置本项目代理,命令及示例如下:

bash 复制代码
# 设置代理
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),增加如下代理配置即可。

bash 复制代码
# 配置 http 代理
[http "https://github.com"]
  proxy = http://127.0.0.1:1087  

# 配置 https 代理
[https "https://github.com"]  
  proxy = http://127.0.0.1:1087

查找代理 IP

不同的 VPN 代理软件地址可能不一样,v2ray-core 可以在如下菜单找到

Git Tower 代理问题

Git Tower 可视化工具需要设置 httpsslverify 代理才能识别。

www.git-tower.com/help/guides...

GitHub 登录问题

参考:davyjones2010.github.io/2022-07-23-...

通过命令行登录会遇到以下两种方式:

  • 如果 clone 仓库用的是 SSH,那么使用 SSH 的方式登录即可。
  • 如果 clone 仓库用的是 https,那么需要输入用户名与密码。
    • 不过从 2021 年 8 月 13 日开始,GitHub 已经 禁止了用户名 + 密码方式 登录。
    • 不过可以使用 用户名 + Personal Access Token 的方式登录,与 Tower 等 GUI 工具一样。
相关推荐
int WINGsssss8 小时前
Git使用
git
用户07605303543810 小时前
Git Revert:安全移除错误提交的方式
git
西柚与蓝莓16 小时前
任务【浦语提示词工程实践】
github
Good_Starry1 天前
Git介绍--github/gitee/gitlab使用
git·gitee·gitlab·github
云端奇趣1 天前
探索 3 个有趣的 GitHub 学习资源库
经验分享·git·学习·github
运营黑客1 天前
发现一超级Prompt:让GPT-4o、Claude3.5性能再升级(附保姆级教程)
github
記億揺晃着的那天1 天前
Github优质项目推荐-第二期
github
F_D_Z1 天前
【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem:
网络·git·网络协议·ssl
Uncertainty!!1 天前
GitHub入门与实践
github