解决 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 工具一样。
相关推荐
naice1 小时前
我对github的图片很不爽了,于是用AI写了一个图片预览插件
前端·javascript·git
逛逛GitHub7 小时前
飞书多维表“独立”了!功能强大的超出想象。
人工智能·github·产品
会飞的青蛙7 小时前
GIT 配置别名&脚本自动化执行
前端·git
努力的小雨9 小时前
混元开源之力:spring-ai-hunyuan 项目功能升级与实战体验
后端·github
NocoBase9 小时前
GitHub 上 Star 数量前 10 的开源项目管理工具
开源·github·资讯
绝无仅有10 小时前
面试实战总结:数据结构与算法面试常见问题解析
后端·面试·github
绝无仅有10 小时前
Docker 面试常见问题及解答
后端·面试·github
逛逛GitHub1 天前
斩获 2 万多 Star!国外老哥把全网 n8n 工作流都开源了
github·工作流引擎
杨杨杨大侠1 天前
Atlas Mapper 案例 01:初级开发者 - 电商订单系统开发
java·开源·github
绝无仅有1 天前
后端 Go 经典面试常见问题解析与总结
后端·面试·github