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

相关推荐
louis.D.7 小时前
git 删除标签完整步骤总结
git
晴天168 小时前
Git 图形界面工具现状-Day28
git
AD_youyu11 小时前
Git 安装教程
git
hj28625112 小时前
Git 与 DevOps/CI/CD 核心知识整理
git
中科三方12 小时前
DNS解析中的“委派“是什么意思?如何正确配置NS记录?
git·github·dns解析
OPEN-F13 小时前
Python进阶教程:Git版本控制与团队协作
git·python·elasticsearch
深念Y15 小时前
Fork 仓库瘦身指南:从 90MB 到 11MB
git·github·仓库·历史·瘦身·fork·上游
叫我少年15 小时前
Git SSH 配置:从生成密钥到远程连接
git·后端
阿火~1 天前
Git 项目配置与推送完整指南
git
j7~1 天前
【Git】《Git 系列指南(二):Git基本操作与 reset 三种模式》
运维·git·git安装·git基本操作·git配置·创建git仓库·git reset三种模式