为什么我的git代理配置不起作用?我确定我已正确设置,但仍然无法正常工作

时间:2019-08-28 08:09:45

标签: git proxy

我使用以下命令设置代理

$ git config --global git.proxy http://127.0.0.1:1080
$ git config --global http.proxy http://127.0.0.1:1080
$ git config --global https.proxy http://127.0.0.1:1080

但是当我克隆仓库时,例如

# git clone git@github.com:npm/npm.git

它不使用代理进行克隆。

我尝试更改我的代理地址,这是随机地址。

$ git config --global git.proxy asdfi:sidfw:sfd
$ git config --global http.proxy asdfi:sidfw:sfd
$ git config --global https.proxy asdfi:sidfw:sfd

如果代理正常工作,git应该提示一些错误。 但是当我再次克隆时,它没有提示任何错误

$ git clone git@github.com:s97712/protobuf.js.git
Cloning into 'protobuf.js'...
Enter passphrase for key '/home/s97712/.ssh/id_rsa': 
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
Receiving objects:   2% (363/18110), 60.00 KiB | 5.00 KiB/s

这意味着git代理不起作用。

我也尝试使用环境变量

$ export http_proxy="http://localhost:1080"
$ export https_proxy="http://localhost:1080"

但是它仍然不起作用。

2 个答案:

答案 0 :(得分:2)

git clone git@github.com:…

这是SSH协议(类似scp的URL语法),它不使用HTTP代理。要使用代理,请将URL更改为HTTPS:

git clone https://github.com:…

PS。端口1080表示它是SOCKS代理,而不是HTTP代理。如果是这样,我认为代理语法是不同的。参见https://stackoverflow.com/a/16756248/7976758https://stackoverflow.com/search?q=%5Bgit%5D+socks+proxy

答案 1 :(得分:0)

我通过socks5(ssh)代理将与github.com的连接代理。

ssh -C -D 1080 user@host -f -Nssh在后​​台通过主机通过socks5代理,未启用默认命令和压缩功能)。我在github.com上的~/.ssh/config如下:

Host github.com
    ProxyCommand /bin/nc -X 5 -x 127.0.0.1:1080 %h %p