「git」の「clone」コマンドを使用して外部へアクセスするときに、接続できない場合の理由と対処方法を紹介します。特に社内環境などの閉じられた環境で問題が発生することがあります。
はじめに
「git」の「clone」コマンドを実行して、下記に記載するようなエラーが発生したことはないでしょうか。
# git clone git://github.com/xxxx/xxxx.git
Cloning into 'xxxx'…
fatal: unable to connect to github.com:
github.com[0: 192.30.255.113]: errno=No error
エラーを確認する限り、「unable to connect」と出力されているので接続できないということがわかります。
このような時は、まずは他の方法(Webブラウザなど)を使用して接続できるかどうかを確認します。他の方法で接続できる場合は、以降に記載している方法で対処できる可能性があります。
他の方法で接続できない場合は、使用している環境からはアクセスできないため、あきらめるしかない可能性が高いです。可能であれば、ネットワーク管理者などに問い合わせをしてみてください。
接続できない原因
他の方法で接続できているにも関わらず接続できない原因は、通信するためのポート番号が問題になっていることがあります。
なぜ、特定のポート番号を使用していると接続できない問題が発生するかというと、環境によりファイアウォールなどにより通信を制限されていることがあります。このため、接続できない問題が発生することがあります。
「gitプロトコル」は、基本的に「9418」のポート番号を使用して通信しています。このポート番号の通信を制限されている場合は、通信ができなくなります。
ちなみに、ファイアウォールなどを使用して、社内から社外へ不正アクセスをできないようにするのは、社内環境などではよくある話です。
接続するポート番号(プロトコル)の変更
接続できるようにするためには、「gitプロトコル」を特定環境でも接続できると思われる「httpsプロトコル(httpsは基本的に、443ポート番号を使用します。これはWebブラウザで使用するポート番号のため、Web閲覧できる環境なら問題ないはずです) 」へ変更することにします。
下記に記載する修正方法をどちらを実施しても、最終的には「~.gitconfig」に情報が追記されるため同じ動作になります。
gitのコマンドで設定を追加する
「git」コマンドを使用して、以下のコマンドを実行します。
git config --global url."https://".insteadOf git://
gitの設定ファイルを直接編集する
ファイル(~.gitconfig)を直接修正して、以下の内容を追記します。
[url "https://"]
insteadOf = git://
まとめ
普段の環境では問題なく使用できるコマンドも、社内などの特定な環境では、ファイアウォールなどによりポート番号の接続が制限されていることもあるため注意しましょう。