web-dev-qa-db-ja.com

Gitエラー:致命的:ソケットに接続できません(無効な引数)

私は自宅のマシンでmsysGit(Windows上のGit)が正常に動作していますが、職場では、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

上記のどちらも違いはありません。

http://の代わりにgit://を使用してgit cloneを実行すると、次の結果が得られます。

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プロキシの背後からgitを動作させることができましたか?これを追求する価値があるかどうかはわかりません。 。

ありがとう!

47
Charles Roper

まったく同じエラーが発生しました。しかし、 ~/.gitconfigグローバル設定ファイル がキーでした。

認証付きのプロキシがある場合は、プロキシを配置する必要があります。

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

そして、それはちょうど動作します(「git clone http:」で)

同じ設定の詳細なブログの例: GIT clone over HTTP:who knows?


それでも407で失敗する場合は、 git-fetchは2番目のHTTP GETで認証トークンを失います の問題に関連している可能性があります。 libcurlの最新バージョン が必要になる場合があります。


2011年1月の更新: jbustamovejhis answer(upvoted) 彼のブログ投稿 " GitHub Behind Corporate Proxy "に記載されています。

ログインにバックスラッシュがある場合domain\loginのように、バックスラッシュをエスケープする必要があるに注意することが重要です。

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

プロキシがgitプロトコルトラフィックを許可していないため、プロキシを構成した後でも接続できない場合があります。この場合、「git」ではなく「http」を使用してみてください。

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

また、自動化されたプロキシ構成ファイル(.pac)を使用している場合は、テキストエディターで開くだけです。最も効率的なプロキシにリダイレクトするための一連の条件を備えた、非常に簡単なスクリプト言語です。汎用トラフィックを許可するもの(通常、最後に構成されたプロキシ)を見つけ、上記のコメントで述べたように構成します。

19
shiva

SOCKSプロキシはありますか?持っている場合は、FreeCapを試して、git接続をソックス化する必要があります。しばらくこの方法でgitを使用しています。

そうでない場合でも、FreeCapを試してください。 IIRCはhttpプロキシを使用できるかもしれませんが、私はそれを試していません。

編集:私は通常cmd.exeを使用してFreeCapを使用し、それ以降(ほぼ)そのセッションから開始するすべてのcmdlineプログラムもsocks化されます。 SocksCap(別の代替)がそのように機能しないため、Free Capを推奨した理由です。

Http.proxyの使用に関しては、何らかの理由で、mingwバージョンと会社のhttpプロキシで動作しませんでした。

3
Marko

私は非常に複雑なルートを介してそれを動作させることができました。方法は次のとおりです。

  1. 私は自宅のマシン(Vistaボックス)でOpenSSHを実行しています Cygwinの下で実行
  2. Bitvise Tunnelierの 統合されたSOCKS/HTTP CONNECTプロキシ経由の動的トンネリング を使用しています。
  3. 次に Freecap (Markoに感謝)を使用してGIT-GUIを「SOCKify」します。残念ながら、各.exeを個別にセットアップし、Freecap内から実行する必要があるため、すべてのgitコマンドラインツールをSOCK化することはできません。 Freecap内で明示的なコマンドラインコマンドをセットアップできますが、それぞれを個別にセットアップする必要があり、そのために目的が失われます。これが、このクレイジーで精巧なシステムにGIT-GUIをセットアップした理由です。

驚くべきことに、私はまだすべてをテストしていませんが、うまくいくようです。確かに、それはクローンであり、これが始まりです。

誰かがより良い解決策を持っているなら、私はすべて耳です。

2
Charles Roper

これが私のために働いたものです:

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

Python 2.7および ntlmaps は、GitHubから407エラーおよびその他のジャンクを取得した後に機能しました。

.gitconfig:

[http]
      proxy = http://127.0.0.1:5865
1
Matt Hinze

私は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.
0
Jay