You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Git使用NTLM代理克隆GitHub仓库再次遇阻

解决Linux下通过NTLM代理克隆GitHub仓库的问题

我来帮你排查这个困扰——NTLM代理的认证机制和普通HTTP代理不一样,Git默认的配置没法直接处理,光靠.gitconfig里填账号密码肯定行不通,得用个中转工具来搞定NTLM的认证流程。下面是我亲测有效的步骤:

第一步:安装NTLM代理中转工具cntlm

Linux上最常用的就是cntlm,它能帮你处理NTLM的认证,把本地请求转换成符合代理要求的格式。根据你的发行版执行安装命令:

  • Ubuntu/Debian系:
    sudo apt update && sudo apt install cntlm
    
  • CentOS/RHEL系:
    sudo yum install cntlm
    

第二步:配置cntlm

编辑cntlm的配置文件/etc/cntlm.conf,找到并修改以下字段:

# 你的NTLM代理账号
Username    your-username
# 你的域(如果代理需要的话)
Domain      your-domain
# 代理服务器的IP和端口
Proxy       proxy-ip:proxy-port
# 本地监听的端口(随便选一个没被占用的,比如3128)
Listener    3128

关键步骤:生成NTLM认证哈希(避免明文密码)
不要直接在配置文件里写明文密码,运行下面的命令生成认证哈希:

cntlm -M http://github.com

按照提示输入你的代理密码,命令会输出类似PassNTLMv2 xxxxxxx的行,把这行复制到cntlm.conf里,替换掉原来的Password字段。

第三步:重启cntlm服务

让配置生效:

sudo systemctl restart cntlm
# 确认服务正常运行
sudo systemctl status cntlm

第四步:修改Git代理配置

现在把Git的代理指向本地的cntlm服务,修改.gitconfig(全局配置的话是~/.gitconfig):

[http]
  sslVerify = true  # 建议开启,除非你完全信任代理服务器
  proxy = http://127.0.0.1:3128
[https]
  sslVerify = true
  proxy = http://127.0.0.1:3128

第五步:测试克隆

现在试试克隆仓库:

git clone https://github.com/your-username/your-repo.git

额外排查点

如果还是不行,可以试试这些:

  • 检查cntlm日志:sudo journalctl -u cntlm,看有没有认证失败的信息
  • 确认本地端口没被占用:netstat -tulpn | grep 3128
  • 有些NTLM代理需要工作站名称,在cntlm.conf里添加Workstation your-workstation-name字段

内容的提问来源于stack exchange,提问作者halloleo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:14:37