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

相关推荐
Hvitur7 小时前
Linux安装Git【离线安装】
git
howard200512 小时前
6.4 Git安装与配置
git·安装配置
tryCbest16 小时前
git实现前后端分离项目提交同一个仓库
git·gitee
Mr.朱鹏16 小时前
Git 仓库同时推送到 Gitee 与 GitHub 配置指南
git·gitee·开源·github
大貔貅喝啤酒19 小时前
CentOS8 + Docker 部署Gitea
自动化测试·gitea·docker 部署gitea
Flynt1 天前
HN 382分热文里的终端小技巧,我实测了一遍,git pickaxe 最值
git·命令行
横木沉2 天前
IntelliJ IDEA 无法识别 Git:Git is not installed 问题解决
java·git·github·intellij-idea
为你学会写情书2 天前
Git 学习指南:从日常命令到多人协作与提交规范
git
东小黑2 天前
Git 仓库操作与 VSCode 使用指南
git·vscode·gitee
拼图2092 天前
Git常用语法
分布式·git·学习