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

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

Спасибо!

Ответ 1

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

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

git config --global http.proxy http://login:[email protected]:8088

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

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


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


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

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

git config --global http.proxy http://domain\\\login:[email protected]:8088

Ответ 2

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

H: > git клон http://github.com/akitaonrails/vimfiles.git

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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

.gitconfig:

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

Ответ 6

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

git config --global http.proxy http://login:[email protected]_SERVER:PORT
git config --global http.sslVerify false

Ответ 7

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