ubuntu设置 Git 代理(http/git/ssh)
admin
2024-01-20 11:23:24
0

转载请标明转载自:https://blog.csdn.net/chenbb8/article/details/127766866


使用git拉取github之类的网站里的远程仓库的时候,因为网络问题,访问速度不稳定,因此需要特殊设置以达到加速clone和push的效果。
git的远程仓库有三种clone方式,不同的连接方式对应不同的设置方法,设错的话就会导致越过代理直接连接,网上的一些教程往往没有说清楚这里面的差别,如下列出几个典型的网址和分类

#http协议
git clone https://github.com/chenbb8/efsm.git
#git协议   (github不支持git://格式,所以这里展示openwrt.org的git协议远程仓库)
git clone git://git.openwrt.org/openwrt/openwrt.git
#ssh协议
git clone git@github.com:chenbb8/efsm.git

注1:对于已经clone下来的本地仓库,可以使用git remote -v查看远程仓库的地址。
注2:另外还有一种方法是在需要加速的命令前加proxychains,不需要繁琐的设置,具体自行百度,这里就不展开了。

为http协议远程仓库设置代理


http协议远程仓库的代理设置比较简单,只需要执行下面的代码(经测试,无需像别的教程那样,分别设置http.proxy和https.proxy)

#如果使用的是http代理 
git config --global http.proxy http://代理地址:代理端口
#如果使用的是socks5代理
git config --global http.proxy socks5://代理地址:代理端口

以上设置产生的是全局代理,也可以针对域名设置代理,以github.com为例:

#如果使用的是http代理 
git config --global http.https://github.com.proxy http://代理地址:代理端口
#如果使用的是socks5代理
git config --global http.https://github.com.proxy socks5://代理地址:代理端口
相关设置可以在~/.gitconfig文件中观察到,可以参考当前设置前后的格式,
直接在~/.gitconfig文件中,增加或者删除对应的配置。后面的取消代理脚本用的就是直接修改~/.gitconfig的方法。

取消http协议远程仓库代理


执行如下代码

git config --global --unset http.proxy

如果是针对域名设置代理,以github.com为例,则执行

git config --global --unset http.https://github.com.proxy

为git协议远程仓库设置代理


github不支持git://格式,所以这次展示openwrt.org的git协议远程仓库:
设置git协议的代理,需要安装connect-proxy

sudo apt-get update
sudo apt-get install connect-proxy

然后在桌面上新建文件gitproxy.sh
在里面输入:

#!/bin/bash
#-S 为 socks, -H 为 HTTP
connect -S 代理地址:代理端口 $@

接着给文件增加执行属性,并它拷贝到用户路径中,以便可以被git调用

chmod +x gitproxy.sh
sudo cp gitproxy.sh /usr/bin/

接着将gitproxy.sh关联到git中:

git config --global core.gitproxy gitproxy.sh

以上设置产生的是全局代理,也可以针对域名设置代理,以openwrt.org为例,则执行

git config --global --add core.gitproxy 'gitproxy.sh for openwrt.org'
相关设置可以在~/.gitconfig文件中观察到,可以参考当前设置前后的格式,
直接在~/.gitconfig文件中,增加或者删除对应的配置。后面的取消代理脚本用的就是直接修改~/.gitconfig的方法。

取消git协议远程仓库代理


执行如下代码

git config --global --unset core.gitproxy

为ssh协议远程仓库设置代理


设置ssh协议的代理,需要安装connect-proxy,参考前面章节。
访问ssh协议远程仓库,相关代理并不通过git来设置,而是设置本地ssh的相关文件
首先在~/.ssh/路径下创建名为config的空文件,然后粘贴下面的内容进去:

Host github.com
#-S 为 socks, -H 为 HTTP
ProxyCommand connect -S 代理地址:代理端口 %h %p

以上设置产生的是全局代理,也可以针对域名设置代理,以github.com为例,则执行

Host github.com
#-S 为 socks, -H 为 HTTP
ProxyCommand connect -S 代理地址:代理端口 %h %p
因为本人电脑中的connect程序连接socks5代理的时候,每次都要提示输入密码,
因此后面的设置代理脚本,通过gitproxyssh.sh自动为代理输入密码。

取消ssh协议远程仓库代理


执行如下代码

git config --global --unset core.gitproxy

注:如果针对多个域名设置代理,可能会报错:warning: core.gitproxy has multiple values
可以通过以下指令直接删除地址,来达成目的:

sed -i '/\[core]/d' ~/.gitconfig
sed -i '/gitproxy =/d' ~/.gitconfig
设置和取消代理的脚本(socks5)

设置代理脚本如下所示,用户需要修改的是:代表代理IP地址的VPN_IP和代表代理端口的VPN_PORT,还有代表需要加速的远程仓库地址数组GIT_ADDR,如果代理设置了密码,那么还要修改变量VPN_POSSWORD的值。

#!/bin/bash
VPN_IP=192.168.0.123
VPN_PORT=2022
VPN=${VPN_IP}:${VPN_PORT}
#代理的连接密码,默认是空密码
VPN_POSSWORD=
GIT_ADDR=(
#一行一个地址
github.com
openwrt.org
)#设置HTTP代理
for addr in ${GIT_ADDR[@]}; do
#	echo http-- $addrgit config --global http.https://$addr.proxy socks5://${VPN}
done#设置GIT代理
if [ ! -e /usr/bin/gitproxy.sh ] ; thenecho 666touch /tmp/gitproxy.shchmod a+x /tmp/gitproxy.shsudo cp /tmp/gitproxy.sh /usr/bin/
fi
#编写脚本/usr/bin/gitproxy.sh
echo "#!/bin/sh" | sudo tee /usr/bin/gitproxy.sh
#设置代理的密码,以免每次都要输入代理的密码(可选)
echo "export SOCKS5_PASSWORD=${VPN_POSSWORD}" | sudo tee -a /usr/bin/gitproxy.sh
echo "connect -S $VPN \$@" | sudo tee -a /usr/bin/gitproxy.sh#git config --global core.gitproxy gitproxy.sh
#git config --global --unset core.gitproxy这个指令在core.gitporxy下有多个值的时候会失效,因此直接操作~/.gitconfig
sed -i '/gitproxy =/d' ~/.gitconfig
for addr in ${GIT_ADDR[@]}; do
#	echo core-- $addrgit config --global --add core.gitproxy "gitproxy.sh for $addr"
done#设置SSH代理
rm -f ~/.ssh/config
touch ~/.ssh/config
for addr in ${GIT_ADDR[@]}; doecho ssh-- $addrecho Host $addr >> ~/.ssh/configecho "ProxyCommand gitproxyssh.sh -S $VPN  %h %p" >> ~/.ssh/config
done
#编写脚本/usr/bin/gitproxyssh.sh
if [ ! -e /usr/bin/gitproxyssh.sh ] ; thenecho 888touch /tmp/gitproxyssh.shchmod a+x /tmp/gitproxyssh.shsudo cp /tmp/gitproxyssh.sh /usr/bin/
fi
echo "#!/bin/sh" | sudo tee /usr/bin/gitproxyssh.sh
#设置代理的密码,以免每次都要输入代理的密码(可选)
echo "export SOCKS5_PASSWORD=${VPN_POSSWORD}" | sudo tee -a /usr/bin/gitproxyssh.sh
echo "connect \$@" | sudo tee -a /usr/bin/gitproxyssh.sh#打印git的设置信息
git config -l

取消代理

#!/bin/bash[ -e /usr/bin/gitproxy.sh ] && sudo rm /usr/bin/gitproxy.sh
[ -e /usr/bin/gitproxyssh.sh ] && sudo rm /usr/bin/gitproxyssh.sh
[ -e ~/.ssh/config ] && sudo rm ~/.ssh/config#git config --global --unset http.proxy
#git config --global --unset core.gitproxy#删除~/.gitconfig中的[xxx]项,--unset只会删除值不会删除项
#并且暂时没找到git的--unset命令匹配全部仓库地址的办法
sed -i '/\[http/,+1d' ~/.gitconfig
sed -i '/\[core\]/d' ~/.gitconfig
sed -i '/gitproxy =/d' ~/.gitconfig#打印git的设置信息
git config -l --global

参考
https://git-scm.com/docs/git-config
https://zhuanlan.zhihu.com/p/481574024
https://blog.csdn.net/dx4640396/article/details/121808602

相关内容

热门资讯

ST中装:公司主要银行账户已全... 证券之星消息,ST中装(002822)06月24日在投资者关系平台上答复投资者关心的问题。 投资者提...
2026年开窗机行业趋势与战略... 一、开篇引言:市场格局重塑下的选择逻辑 步入2026年,全球建筑智能化与绿色节能政策的叠加驱动,使开...
资金全面转向科技,传统消费企业... 近期 A 股出现明显风格切换,老牌消费资金持续流出,机构与传统上市公司纷纷加码半导体、算力赛道。 先...
合肥保利翡翠天奕具体交房时间是... 对于众多购房者而言,“合肥保利翡翠天奕具体交房时间是什么时候?能按时交房吗?”是心中最关切的问题。根...
港股风向标|恒指连续杀跌后企稳... 财联社6月24日讯(编辑 冯轶)今日港股短线企稳,三大指数集体收涨。截至收盘,恒生指数涨0.33%,...
瑞众人寿达州中支被罚17万,涉... 蓝鲸新闻6月24日讯,近日,国家金融监督管理总局达州监管分局发布行政处罚决定书,剑指瑞众人寿保险有限...
美国最担心的事还是来了,中国加... 最近这段时间,国际金融圈子里有一笔账,算得各家央行心里都不太踏实。 截至2026年春季,美国国债总规...
马斯克,不是万亿富豪了 资产历史性超过万亿美元不到两周,特斯拉、SpaceX掌门人埃隆·马斯克的身价近日快速下跌。 据中新经...
突发!金价跌破4000美元,近... 每经记者:杜宇 记者|杜宇 编辑|何小桃 杜恒峰 校对|金冥羽 金银价格大跳水。 6月24日晚,现货...
粗粮吃越多越好?很多糖友吃错升... 控糖圈一直流传多吃粗粮稳血糖,不少糖友直接三餐全吃粗粮、顿顿杂粮,不仅胃胀消化不良,餐后血糖反而不降...
持续大跌!刚刚,黄金跌破400... 潮新闻客户端 记者 吴恩慧 6月24日,贵金属再次大跌。 截至发稿时,现货黄金大跌近3%,跌破400...
2026年安徽白酒代加工/贴牌... 一、行业背景与痛点引入 白酒代加工领域正经历结构性变革。据行业观察,2025年至2026年,中小酒企...
曾在次贷危机中取得900%收益... 来源:环球市场播报 对冲基金经理Lee Robinson在全球金融危机期间曾凭借及时做空美国次级抵押...
基金“业界良心”又吹哨?杨东旗... 图片来源:图虫创意 “A股大量的热门股票,未来极有可能跌掉八成乃至九成以上,我们不敢再参与了。”6月...
浙江稠州商业银行护航“两司两员... 近年来,随着平台经济、共享经济蓬勃兴起,货车司机、网约车司机、快递员、外卖配送员(以下简称:两司两员...
IPO研究 | 中国日均Tok... 瑞财经 王敏 6月22日,河南鑫宇光科技股份有限公司(以下简称“鑫宇科技”)北交所IPO获受理,保荐...
IPO定向松绑,难道硬科技无动... 睡前和大家唠两句,最近市场藏着不少容易被忽略的动向,值得好好捋捋。本篇为大家准备了4条要闻,都是实打...
Kalshi首席执行官称预测交... 来源:环球市场播报 核心要点 Kalshi首席执行官塔雷克・曼苏尔在消费者新闻与商业频道《财经早...
韩国科技股暴跌点燃全球抛售潮 在全世界范围内, AI资本神话遭遇微观与宏观的双重审视 文|《财经》特约撰稿人 金焱 发自华盛顿 编...
审计署通报!中国银行逃税23.... 6月23日,审计署发布《国务院关于2025年度中央预算执行和其他财政收支的审计工作报告》,在报告中的...