Git error: fatal: невозможно подключить сокет (неверный аргумент) - PullRequest
47 голосов
/ 30 января 2009

У меня msysGit (Git на Windows) отлично работает на моей домашней машине, но на работе, где мы находимся за прокси-сервером Microsoft ISA, я получаю следующую ошибку при выполнении 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)

Я попытался установить переменную среды 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? Я не знаю, стоит ли это преследовать. Любая помощь очень ценится.

Спасибо!

Ответы [ 7 ]

60 голосов
/ 30 января 2009

У меня была точно такая же ошибка; но ключ ~/.gitconfig global config был ключевым.

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

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

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

Пример блога, описывающего ту же настройку: GIT-клон по HTTP: кто знал?


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


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

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

git config --global http.proxy http://domain\\\login:password@our-proxy-server:8088
19 голосов
/ 13 мая 2009

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

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

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

3 голосов
/ 30 января 2009

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

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

EDIT: Я обычно socksify cmd.exe , используя FreeCap, и с тех пор (почти) все программы cmdline, которые я запускаю из этого сеанса, тоже socksified. Вот почему я рекомендовал Free Cap, так как SocksCap (другая альтернатива) не работает таким образом.

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

2 голосов
/ 30 января 2009

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

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

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

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

1 голос
/ 03 февраля 2015

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

git config --global http.proxy http://login:password@PROXY_SERVER:PORT
git config --global http.sslVerify false
1 голос
/ 12 апреля 2011

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

.gitconfig:

[http]
      proxy = http://127.0.0.1:5865
0 голосов
/ 11 августа 2010

У меня была эта проблема на 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.
...