蓝易云:git报错:Failed to connect to
发布时间:2025-12-22 00:01       
git 报错 Failed to connect to 127.0.0.1,几乎可以直接定性为:Git 的网络请求被“改道”到了本机回环地址(通常是代理配置、地址重写或 hosts 解析导致),而本机对应端口没有服务在监听,所以连接失败。下面按“最快止血→精准定位→长期治理”的路径处理。🙂
一、先确认:到底是 Git 在连“远程仓库”,还是被改成连“本机”

1)检查远程地址是否本来就是 127.0.0.1
git remote -v
- 作用:输出 fetch/push 的远程 URL。
- 判断:如果远程地址直接是
http://127.0.0.1:xxxx/...或https://127.0.0.1/...,那不是网络问题,是仓库地址配置错了。
处理:把 remote 改回正确仓库地址即可。
2)看失败发生在 HTTPS 还是 SSH
- HTTPS 常见报错:
Failed to connect to 127.0.0.1 port xxxx - SSH 常见报错:
ssh: connect to host 127.0.0.1 port 22: Connection refused
这一步很关键,因为两类问题的根因不同:HTTPS 多为 HTTP 代理;SSH 多为 SSH 配置/跳板/代理命令。✅
二、80% 的根因:代理把请求指向了本机(但代理没开或端口变了)🚦
1)检查 Git 自己的代理配置(最常见)
git config --global --get http.proxy
git config --global --get https.proxy
git config --system --get http.proxy
git config --system --get https.proxy
- 作用:查看全局/系统级是否设置了代理(很多时候是
127.0.0.1:7890/1080/8118之类)。 - 修复(临时止血):取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
2)检查系统环境变量代理(Git 会继承)
# Linux/macOS
env | grep -i proxy
# Windows(PowerShell)
Get-ChildItem Env: | Select-String -Pattern "proxy"
- 关注:
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / NO_PROXY - 修复:把这些变量清空或改成真实可用的代理地址;如果你不需要代理,直接移除最干净。
3)确认本机代理端口到底有没有服务在监听
# Linux
ss -lntp | grep -E ":(7890|1080|8118)\b" || true
# macOS
lsof -nP -iTCP -sTCP:LISTEN | grep -E ":(7890|1080|8118)\b" || true
- 作用:看代理软件是否启动、端口是否匹配。
- 结论:如果 Git 配了
127.0.0.1:xxxx,但这里查不到监听,那就是“指向了空气”。😄
三、容易被忽略的两类“暗改道”:URL 重写与 hosts 解析
1)检查 URL 重写(insteadof 把域名替换成本机)
git config --global -l | grep -i insteadOf
- 作用:排查是否存在把
https://xxx.com/改写成http://127.0.0.1:xxxx/的规则。 - 修复:删除对应的
url.*.insteadof配置项(按实际键名--unset)。
2)检查 hosts 是否把仓库域名解析到 127.0.0.1
- Linux/macOS:
/etc/hosts - Windows:
C:\Windows\System32\drivers\etc\hosts - 关注:是否有
仓库域名 127.0.0.1这一类映射。
这类配置常用于本地调试,但会直接让 Git 去连本机。
四、快速定位对照表(直接按现象落点)📌
| 现象特征 | 高概率原因 | 一句话处理 |
|---|---|---|
URL 正常,但错误里出现 127.0.0.1:xxxx |
Git/系统代理指向本机 | 取消 http(s).proxy或修复代理进程与端口 |
git remote -v就是 127.0.0.1 |
remote 配错 | git remote set-url origin 正确地址 |
| 只在公司/特定网络失败 | 需要代理或被拦截 | 启用可用代理,并确保端口监听 |
| SSH 报连 127.0.0.1:22 | SSH 配置被改写/ProxyCommand | 检查 ~/.ssh/config与跳转设置 |
五、建议的“最短闭环”操作顺序(务实版)
git remote -v确认远程地址没写错- 查并清理
git config --global --get http.proxy/https.proxy - 查环境变量代理并清理
- 查
insteadof、查 hosts - 再执行一次
git fetch -v验证恢复
只要按这个顺序走,基本能在几分钟内把问题收敛到“代理没开/端口变了/配置被写死”三选一。需要你把报错里显示的 端口号(例如 7890/1080/8118/xxxx)对上即可定位到具体配置点。