Git proxy settings on Windows
Warning
This article was last updated on 2022-04-19, the content may be out of date.
Failure
This page hasn’t been translated yet. You are welcomed to translate this page and add a pull request to the repo
1. http/https 代理
查看代理
|
|
配置代理
|
|
取消配置
|
|
Note
以上配置只适用于 http/https链接
2. ssh 代理
ssh代理通过修改ssh配置文件实现, 查看~/.ssh/config
, 如果没有则创建, 添加如下配置
|
|
Host指定了下列配置针对的主机名称规则, 可以使用通配符*
(0-n字符)和?
(1个字符)
Example
github.com 可以匹配 ssh username@github.com
, 不能匹配ssh username@ssh.github.com
*github.com 则上述两种都可以匹配
Example
应用如下配置
|
|
效果如下
IdentityFile 是对应私钥的存放路径
ProxyCommand 是在连接前执行的指令, 这里使用connect工具(windows 版本 git 自带)
connect的主要参数 [-H proxy-server[:port]] [-S [user@]socks-server[:port]]
所以 -H 对应http代理, -S 对应socks5代理. 这里的 -a none 是 NO-AUTH 模式的含义
%h %p 是ssh配置文件中默认的占位符, 分别代表替换后的hostname和port
Note
在网上可以看到有两种配置
|
|
另一种是
|
|
这两者的区别就是hostname和port不同, 都是有效的. 有些防火墙禁止了22端口的数据, 此时可以使用443端口1(目前使用的机场就ban了22端口, 之前使用的下面的配置, 最近发现不能用了, 才有了这篇文章)
Note
ProxyCommand 中的 connect是在git环境里的, 所以在git push/clone时是可以正确执行的, 但是如果单独执行就会缺失相应的环境变量. 因此, 即使配置正确,
ssh -T git@github.com
的测试也不能正确执行, 除非将connect加入windows path中Tip
可以使用 -v 参数查看ssh的调试信息, 如
ssh -v -T git@github.com