Питання Помилка 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, звичайно, є помилка автентифікації.

Отже, моє запитання: чи хтось вдалося отримати гіт, що працював з-за проксі-сервера, зокрема проксі ISA? Я не знаю, чи варто цього робити. Будь-яка допомога дуже цінується.

Дякую!


45
2018-01-30 16:54


походження


просто додав ще один потенційний виправлення - VonC
Дякую за відгук. Я вважаю, що у вас тепер є Git1.6.4? - VonC


Відповіді:


Я мав точно таку ж помилку; але ~/.gitconfig глобальний файл конфігурації був ключовим.

Якщо у вас є проксі-сервери з автентифікацією, ви повинні ввести це:

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

І це просто працює (з "git clone http:')

Приклад блогу, що деталізує ту саму установку: GIT клонувати через HTTP: хто знав?


Якщо вона все ще не працює в 407 році, це може бути пов'язано з проблемою Git-Fetch втрачає токени аутентифікації на другій HTTP GET. А. більш пізня версія libcurl може знадобитися.


Оновити січень 2011 року: дзюбатем'єв згадується в його відповідь (вимовлений) його блог "GitHub за корпоративним проксі", який додає:

Важливо це відзначити якщо ваш логін має зворотну риску, а саме domain\login, ви повинні уникнути зворотної риски, а саме:

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

55
2018-01-30 17:57



Дякуємо за відгук, але я не можу отримати цю роботу. Він все ще дає помилку 407 (автентифікація), хоча я встановив проксі (разом з ім'ям і паролем) як у середовищі, так і в .gitconfig. - Charles Roper
Я просто спробував це знову, оскільки msysGit було оновлено, і це працювало. Ура! Я думаю, libcurl повинен був бути оновлений в останній версії. - Charles Roper
Чарльз, яка версія у вас є? З новою версією, де ви встановлюєте конфігурацію проксі-сервера? Я отримую таку ж проблему, і я спробував багато способів. - John John Pichler


Навіть після налаштування проксі-сервера, можливо, ви не зможете підключитися, оскільки проксі-сервер забороняє трафік протоколу git. У цьому випадку ви можете спробувати скористатися "http" замість "git"

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

Крім того, якщо ви використовуєте автоматичний файл конфігурації проксі (.pac), просто відкрийте його в текстовому редакторі. Складений мову сценаріїв дуже легко, причому безліч умов для переспрямування на найефективніший проксі-сервер. Знайдіть той, який дозволяє трафік загального призначення (як правило, останній налаштований проксі-сервер), і налаштуйте його, як зазначено в коментарях вище.


19
2018-05-13 19:06



Чудово! у мене була однакова проблема з git, це дало цю помилку "Неможливо підключитися до сокета (без помилок)". Я налаштував свій --global http.proxy, і я використав http, а не git під час клонування, і він працював. - gath
Саме це і було моє питання. Мені не довелося турбуватися про проксі. - Jim Schubert
Очевидно, що це працює тільки для git repos, які розміщуються через http. Тобто він буде працювати на repos на основі github.com. Для інших, вам доведеться отримати дію через роботу брандмауера / проксі-сервера - shiva


У вас є проксі SOCKS? Якщо у вас є, ви можете спробувати FreeCap щоб проковтнути ваше з'єднання з GIT. Я використовую GIT таким чином на деякий час.

Якщо ні, все-таки спробуйте FreeCap. IIRC він може використовувати проксі http, але я не пробував цього.

EDIT: Я звичайно соцопичую cmd.exe використовуючи FreeCap, і згодом (майже) всі програми cmdline, які я починаю з цього сеансу, теж є socksified. Ось чому я рекомендував безкоштовну шапку, оскільки SocksCap (інша альтернатива) не працює таким чином.

Що стосується використання http.proxy, це з якихось причин ніколи не працювало для мене з мінув версією, а моїми компаніями проксів http.


3
2018-01-30 16:59



Спасибі за це, FreeCap виглядає цікаво. Чи можете ви розповісти про те, як ви використовуєте Git? - Charles Roper


Мені вдалося отримати роботу за дуже заплутаним маршрутом. Ось як це зробити:

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

Дивно, але це, здається, працює, хоча я все ще не протестував. Це буде клонувати, звичайно, що є початком.

Якщо хтось має краще рішення, я всі вуха.


2
2018-01-30 18:33





Python 2.7 і ntlmaps працював для мене після отримання 407 помилок та інших сміття з GitHub.

.gitconfig:

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

1
2018-04-12 14:32





Ось що працює для мене:

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

1
2018-02-03 20:35





У мене проблема в 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. Я вимкнув "резидентний щит" у 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.

0
2017-08-11 13:04