Ошибка Git: фатальный: невозможно подключить сокет (недопустимый аргумент)

У меня msysGit (Git в Windows) отлично работает на моем домашнем компьютере, но на работе, где мы находимся за прокси-сервером Microsoft ISA, я получаю следующую ошибку, когда делаю клон git:

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)

Я попытался установить для переменной среды http_proxy значение:

http://our-proxy-server:8088

Я установил директиву конфигурации git http.proxy:

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

Ничего из вышеперечисленного не имеет значения.

Выполнение клона git с http:// вместо git:// дает следующее:

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 - это, конечно, ошибка аутентификации.

Итак, мой вопрос: кому-нибудь удалось заставить git работать из-за прокси, в частности прокси ISA? Не знаю, стоит ли тратить на это деньги. Любая помощь очень ценится.

Спасибо!


person Charles Roper    schedule 30.01.2009    source источник
comment
просто добавил еще одно возможное исправление   -  person VonC    schedule 30.01.2009
comment
Спасибо за ваш отзыв! Я так понимаю, у вас теперь есть Git1.6.4?   -  person VonC    schedule 11.09.2009


Ответы (7)


У меня была точно такая же ошибка; но ключевым был ~/.gitconfig файл глобальной конфигурации.

Если у вас есть прокси с аутентификацией, вам нужно вставить в него:

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

И это просто работает (с git clone http:)

Пример блога, в котором подробно описывается та же настройка: GIT клонировать через HTTP: кто знал?


Если он по-прежнему не работает в 407, это может быть связано с проблемой с git- получить потерянные токены аутентификации во втором HTTP GET. более поздняя версия libcurl может понадобиться.


Обновление от января 2011 г .: jbustamovej упоминается в его ответ (проголосовало за) его сообщение в блоге" GitHub Behind Corporate Proxy", который добавляет следующее:

Важно отметить, что если в вашем логине есть обратная косая черта, как в domain\login, вы должны избегать обратной косой черты, как в:

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088
person VonC    schedule 30.01.2009
comment
Спасибо за совет, но я не могу заставить это работать. Он по-прежнему дает мне ошибку 407 (аутентификация), хотя я установил прокси (с именем пользователя и паролем) как в среде, так и в .gitconfig. - person Charles Roper; 30.01.2009
comment
Я просто попробовал это еще раз, так как msysGit был обновлен, и это сработало. Ура! Думаю, libcurl, должно быть, обновили до последней версии. - person Charles Roper; 11.09.2009
comment
Чарльз, какая у вас версия? В новой версии куда поставить конфигурацию прокси? У меня та же проблема, и я пробовал разные манеры. - person John John Pichler; 13.12.2011

Даже после настройки прокси вы не сможете подключиться, поскольку прокси запрещает трафик протокола git. В этом случае вы можете попробовать использовать http вместо git.

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

Кроме того, если вы используете файл конфигурации автоматического прокси (.pac), просто откройте его в текстовом редакторе. Это довольно простой язык сценариев с множеством условий для перенаправления на наиболее эффективный прокси. Найдите тот, который разрешает трафик общего назначения (обычно последний настроенный прокси), и настройте его, как указано в комментарии выше.

person shiva    schedule 13.05.2009
comment
Здорово! У меня была аналогичная проблема с git, он выдавал эту ошибку. Невозможно подключиться к сокету (нет ошибки). Я настроил свой --global http.proxy и использовал http вместо git при клонировании, и это сработало. - person gath; 19.03.2010
comment
Это именно то, в чем была моя проблема. Мне не пришлось возиться с прокси. - person Jim Schubert; 07.02.2011
comment
Очевидно, это работает только для репозиториев git, размещенных через http. Т.е. он будет работать для репозиториев на основе github.com. Для других вам нужно будет заставить git работать через ваш брандмауэр / прокси. - person shiva; 24.08.2011

У вас есть прокси SOCKS? Если да, вы можете попробовать FreeCap, чтобы заблокировать соединение с git. Я уже давно использую git таким образом.

Если нет, все равно попробуйте FreeCap. IIRC, возможно, он сможет использовать http-прокси, но я этого не пробовал.

РЕДАКТИРОВАТЬ: я обычно socksify cmd.exe с помощью FreeCap, и с тех пор (почти) все программы cmdline, которые я запускаю из этого сеанса, тоже socksified. Вот почему я рекомендовал Free Cap, поскольку SocksCap (еще одна альтернатива) так не работает.

Что касается использования http.proxy, он по какой-то причине никогда не работал у меня с версией mingw и http-прокси моей компании.

person Marko    schedule 30.01.2009
comment
Спасибо за это, FreeCap выглядит интересно. Можете ли вы подробнее рассказать, как вы используете с ним Git? - person Charles Roper; 30.01.2009

Мне удалось заставить его работать очень запутанным путем. Вот как:

  1. У меня OpenSSH работает на моем домашнем компьютере (Vista). работает под Cygwin
  2. Я использую динамическое туннелирование через встроенный прокси-сервер SOCKS / HTTP CONNECT Bitvise Tunnelier.
  3. Затем я использую Freecap (спасибо Марко) для "SOCKify" GIT-GUI. К сожалению, вам нужно настраивать каждый .exe индивидуально и запускать их из Freecap, поэтому вы не можете универсально SOCKify все инструменты командной строки git. Вы можете настроить явные команды командной строки в Freecap, но вы должны настроить каждую индивидуально, что не соответствует цели. Вот почему я только что установил GIT-GUI в этой безумно сложной системе.

Удивительно, но вроде работает, хотя еще не все проверял. Конечно, он будет клонирован, и это только начало.

Если у кого-то есть решение получше, я весь в ушах.

person Charles Roper    schedule 30.01.2009

Python 2.7 и ntlmaps работали у меня после получения 407 ошибок и другого мусора от GitHub.

.gitconfig:

[http]
      proxy = http://127.0.0.1:5865
person Matt Hinze    schedule 12.04.2011

Вот что у меня сработало:

git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false
person Vlad Bezden    schedule 03.02.2015

У меня была эта проблема на windows7:

$ 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. Я отключил «резидентный щит» в 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.
person Jay    schedule 11.08.2010