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 更细粒度,也更不容易影响外网访问。

相关推荐
超梦dasgg7 小时前
工作中 Git 完整使用指南(职场实战版)
git
Ws_7 小时前
Git + Gerrit 第七课:stash 临时保存工作区修改
git
enjoywindstorm8 小时前
git从入门到精通
git
Adorable老犀牛12 小时前
Git 发布正式版本的一个专属的硬核功能,叫做 打标签(Tag)。
git
我先去打把游戏先13 小时前
Ubuntu虚拟机(服务器版本)Git卸载完全教程——彻底移除与清理配置
服务器·git·单片机·嵌入式硬件·物联网·ubuntu·51单片机
不做无法实现的梦~15 小时前
Git Clone 使用 Watt/Steam++ 加速时报证书错误的原因与解决方法
大数据·git·elasticsearch
黑猫警长丶16 小时前
Git 操作笔记
笔记·git
MageGojo16 小时前
Whois 域名查询 API 接入实战:用一个 GET 请求获取域名注册信息
java·git·github
黑猫警长丶16 小时前
Git 本地操作基础
git
白狐_79817 小时前
从功能开发到开源维护:一个 Python 可视化项目的 Git 分支、维护文件与 PR 流程实践
git·python·开源