Git 代理与内网 Gitea 共存方案(无需 no_proxy)

问题背景

目前我们自己在内网中部署了一个代码仓库gitea,其地址为192.168.0.232:300。但是发现,在我的开着代理的电脑上(Windows 11系统)通过浏览器访问是没有问题的,但是想直接在命令行中执行git clone等操作就不行,总是报502错误。但是我又不想把代理关掉或者设置no_proxy环境变量,因为我要访问外网,也就是希望这样:

  • 外网访问需要走本地代理(例如 127.0.0.1:7890
  • 内网 Gitea(例如 192.168.0.232:3000)应该直连

如果直接设置系统级 no_proxy,有时会影响整体代理行为,导致外网访问异常。

方式

可以不必依赖系统环境变量 no_proxy。可以使用 Git 的"按 URL 精确配置"能力:

  • 全局保留默认代理(给外网)
  • 仅对内网 Gitea 的 URL 设置 proxy =(空值,表示不走代理)

这样可实现"外网走代理,内网直连"。

配置方法

1) 保留全局代理(如果你已经有可跳过)

powershell 复制代码
git config --global http.proxy  http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

2) 为内网 Gitea 添加 URL 级别直连规则(关键)

powershell 复制代码
git config --global http."http://192.168.0.232:3000".proxy ""

等价配置会写入 ~/.gitconfig

ini 复制代码
[http "http://192.168.0.232:3000"]
    proxy =

验证

查看代理相关配置来源

powershell 复制代码
git config --show-origin --get-regexp "^http\.proxy$|^https\.proxy$|^http\..*\.proxy$|^https\..*\.proxy$"

预期同时看到:

  • 全局 http.proxy / https.proxy
  • URL 专用 http.http://192.168.0.232:3000.proxy(空值)

验证 gitea 可访问

powershell 复制代码
git ls-remote gitea

能返回 HEAD 和分支列表即表示访问正常。

可选:仅在单仓库生效(而非全局)

如果只想针对当前仓库生效,去掉 --global

powershell 复制代码
git config http."http://192.168.0.232:3000".proxy ""

此时配置写入当前仓库的 .git/config

排查建议

  1. 先确认内网连通性(ping 192.168.0.232)仅代表 ICMP 通。
  2. 再确认服务端口可达(192.168.0.232:3000)。
  3. 若浏览器可访问但 Git 不可访问,重点检查 Git 的 http.*proxy 配置优先级。
  4. 若用了代理软件规则(PAC/TUN/系统代理),也要确认没有把内网地址错误转发。

回滚命令

删除全局 URL 专用规则:

powershell 复制代码
git config --global --unset-all http."http://192.168.0.232:3000".proxy

删除仓库级 URL 专用规则:

powershell 复制代码
git config --unset-all http."http://192.168.0.232:3000".proxy

这个方案的核心是"精确绕过某个 Git URL 的代理",比全局 no_proxy 更细粒度,也更不容易影响外网访问。

相关推荐
YoseZang2 小时前
【手工】git的使用 - 密钥生成和多账户使用(config文件)
git
zhougl9963 小时前
Git 命令速查手册
大数据·git·elasticsearch
小陈同学呦4 小时前
Git Worktree 并行开发实战指南
git·vibecoding
码农小旋风4 小时前
2026 最新 Claude Code Windows 安装教程:Node、Git Bash、命令检查一步步配好
windows·git·bash·claude
ethan.Yin5 小时前
Git_查看已删除文件的历史
git
KieranYin19 小时前
Git_查看已删除文件的历史
git
星谐21 小时前
GitX智能版本控制助手:告别Git命令行,让版本控制更高效
git
错把套路当深情1 天前
Git 常用命令大全
git
向上_503582911 天前
解决git提交冲突
git