Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git error: fatal: unable to connect a socket (Invalid argument)

I've got msysGit (Git on Windows) working just fine on my home machine, but at work, where we are behind a Microsoft ISA proxy, I get the following error when I do a git clone:

H:\>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) 

I've tried setting the http_proxy environment variable to:

http://our-proxy-server:8088 

I've set the git http.proxy configuration directive:

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

Neither of the above makes a difference.

Doing a git clone with http:// instead of git:// yields this:

H:\>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 is of course an authentication error.

So my question is: has anyone managed to get git working from behind a proxy, specifically an ISA proxy? I don't know if it's going to be worth pursing this. Any help very much appreciated.

Thanks!

like image 702
Charles Roper Avatar asked Jan 30 '09 16:01

Charles Roper


2 Answers

I had the exact same error; but the ~/.gitconfig global config file was the key.

If you have a proxy with authentication you need to put in it:

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

And it just works (with 'git clone http:')

Example of a blog detailing the same setup: GIT clone over HTTP: who knew?


If it still fails in 407, it could be related to a problem with git-fetch losing authentication tokens on the second HTTP GET. A more recent version of libcurl might be needed.


Update January 2011: jbustamovej mentions in his answer (upvoted) his blog post "GitHub Behind Corporate Proxy", which adds this:

It’s important to note that if your login has a backslash, as in domain\login, you must escape the backslash, as in:

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088 
like image 155
VonC Avatar answered Oct 01 '22 16:10

VonC


Even after configuring the proxy, you might be unable to connect, since the proxy is disallowing git protocol traffic. In this case, you might want to try using "http" instead of "git"

H:>git clone http://github.com/akitaonrails/vimfiles.git

Also, if you are using an automated proxy config file (.pac), just open it in a text editor. It is quite a easy to following scripting language, with a bunch of conditions to re-direct to the most efficient proxy. Find the one that allows general purpose traffic (typically, the last configured proxy), and configure it as mentioned in the comment above.

like image 30
shiva Avatar answered Oct 01 '22 16:10

shiva