解决 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 工具一样。
相关推荐
qq_349447951 小时前
Linux系统,安装git,从使用git下载仓库(GitHub, Gitee, GitLab 等),并且使用ssh密钥,可以直接执行git pull
linux·git·ssh
峰向AI4 小时前
24000本书,一个项目全搞定:这个开源宝藏让我重新认识了读书
github
mCell4 小时前
GitHub Actions 玩法大赏:一台远程主机的七种活法
linux·github·agent
hajimi5 小时前
Agent Skill 实战:我把大疆行业无人机上云的坑,固化成了一个技能包
github
笨鸟先飞,勤能补拙7 小时前
AI与深度学习:从原理到应用
人工智能·windows·vscode·深度学习·机器学习·网络安全·github
前端小卡拉8 小时前
DeepSeek 把 Agent Harness 开源了:Everything is a Plugin,一个手搓过 harness 的人怎么看
github
TunerT_TQ8 小时前
Microsoft 微软 Fluent UI 源码静态评测:从工程结构、测试线索到交付治理的完整解读
microsoft·开源·github
逛逛GitHub9 小时前
国产桌面端 Agent 进化了,支持定时任务、接入Obsidian、丰富SKill
github
子林super9 小时前
OpenCode的Harness机制与模块
github
fthux9 小时前
装闭 RenoPit 源码解析(12):从AI分析结果到React避坑报告
人工智能·ai·开源·github·open source·renopit