Git错误:fatal:无法连接套接字(无效参数)

ewm0tg9j  于 12个月前  发布在  Git
关注(0)|答案(7)|浏览(129)

我已经让msysGit(Windows上的Git)在我的家用机器上工作得很好,但是在工作中,我们在Microsoft伊萨代理后面,当我做Git克隆时,我得到以下错误:

H:
cd \
git clone git://github.com/akitaonrails/vimfiles.git

字符串
输出量:

Initialized empty Git repository in H:/vimfiles/.git/
github.com[0: 65.74.177.129]: errno=Invalid argument
fatal: unable to connect a socket (Invalid argument)


我尝试将 http_proxy 环境变量设置为:

http://our-proxy-server:8088


我已经设置了Git http.proxy 配置指令:

git config --global http.proxy http://our-proxy-server:8088


以上两点都没有区别。
使用http://而不是git://执行Git克隆会产生以下结果:

H:
cd \
git clone http://github.com/akitaonrails/vimfiles.git


输出量:

Initialized empty Git repository in H:/vimfiles/.git/
fatal: http://github.com/akitaonrails/vimfiles.git/info/refs download error - The    requested URL returned error: 407


407是一个验证错误。
有没有一种方法可以让Git在一个代理(特别是伊萨代理)后面工作?我不知道这是否值得追求。

ctehm74n

ctehm74n1#

我有完全相同的错误;但~/.gitconfig global config file是关键。
如果你有一个带身份验证的代理,你需要在里面放:

git config --global http.proxy http://login:password@our-proxy-server:8088

字符串
而且它只是工作(与'git clone http:')
详细介绍相同设置的博客示例:GIT clone over HTTP: who knew?
如果在407中仍然失败,则可能与git-fetch losing authentication tokens on the second HTTP GET的问题有关。可能需要more recent version of libcurl
2011年1月更新:jbustamovej在他的回答中提到了他的博客文章“GitHub Behind Corporate Proxy”,其中补充说:
需要注意的是,如果您的登录名有一个反斜杠,如domain\login您必须转义反斜杠,如:

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088

voase2hg

voase2hg2#

即使在配置代理之后,您也可能无法连接,因为代理不允许Git协议流量。在这种情况下,您可能需要尝试使用“http”而不是“git”。
H:>git clone http://github.com/akitaonrails/vimfiles.git
此外,如果您使用的是自动代理配置文件(.pac),只需在文本编辑器中打开它。这是一种很容易遵循的脚本语言,有一堆条件重定向到最有效的代理。找到一个允许通用流量的代理(通常是最后配置的代理),并按照上面的评论中提到的那样配置它。

xv8emn3q

xv8emn3q3#

你有SOCKS代理吗?如果有,你可以尝试FreeCap来socksify你的Git连接。我已经用Git一段时间了。
如果没有,仍然尝试FreeCap.IIRC它可能能够使用HTTP代理,但我还没有尝试过。
我通常使用FreeCap对cmd.exe进行socksify,从那时起(几乎)我从该会话启动的所有线程程序也都进行了socksify。这就是为什么我推荐Free Cap,因为SocksCap(另一种选择)不能以这种方式工作。
至于使用 * http.proxy *,由于某种原因,它从来没有为我工作的MinGW版本和我公司的HTTP代理。

kninwzqo

kninwzqo4#

我已经通过一个非常复杂的路线成功地让它工作起来。下面是如何做到的:
1.我在家里的机器(Vista机器)上运行OpenSSH running under Cygwin
1.我使用Bitvise Tunnelier的动态隧道通过集成SOCKS/HTTP代理。
1.然后使用Freecap(感谢Marko)到“SOCKify”GIT-GUI。不幸的是,你必须单独设置每个.exe并在Freecap中运行它们,所以你不能通用地SOCKify所有的git命令行工具。你可以在Freecap中设置显式的命令行命令,但你必须单独设置每个命令,这就是为什么我刚刚在这个疯狂的复杂系统中设置了GIT-GUI
令人惊讶的是,它似乎工作,虽然我还没有测试一切。它会克隆,当然,这是一个开始。
如果有人有更好的解决办法,我洗耳恭听。

4smxwvx5

4smxwvx55#

以下是对我有效的方法:

git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false

字符串

zyfwsgd6

zyfwsgd66#

Python 2.7和ntlmaps在GitHub上收到407错误和其他垃圾后为我工作。
文件 .gitconfig

[http]
      proxy = http://127.0.0.1:5865

字符串

lh80um4z

lh80um4z7#

我在Windows 7上遇到了这个问题:

git clone git://github.com/facebook/php-sdk.git

字符串
输出量:

Initialized empty Git repository in c:/Users/Jay/temp/php-sdk/.git/
github.com[0: 207.97.227.239]: errno=No error
fatal: unable to connect a socket (No error)


我终于意识到这是AVG AntiVirus软件在运行。我禁用了AVG内的“常驻屏蔽”,它的工作就像一个魅力。

git clone git://github.com/facebook/php-sdk.git


输出量:

Initialized empty Git repository in c:/Users/Jay/temp2/php-sdk/.git/
remote: Counting objects: 223, done.
remote: Compressing objects: 100% (179/179), done.
emote: Total 223 (delta 84), reused 0 (delta 0)
Receiving objects: 100% (223/223), 37.32 KiB, done.
Resolving deltas: 100% (84/84), done.

相关问题