1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git clone が突然 503!? 原因は no_proxy の書き方ミスだった

Posted at

はじめに

社内ネットワーク内にあるオンプレミスの GitLab を使って開発している環境で、突然 git clonegit push もできなくなりました

社内のブラウザでは普通にGitLabの画面が開けるのに、ターミナルでは謎の 503 エラー

原因を調査していった結果、意外なところに落とし穴がありました

社内プロキシを経由している環境では、同じようなトラブルに遭遇する可能性があるので、備忘録として残しておきます


発生したエラー

$ git clone http://<社内GitLabのホスト>/your-group/your-repo.git
Cloning into 'your-repo'...
fatal: unable to access 'http://<社内GitLabのホスト>/your-group/your-repo.git/': The requested URL returned error: 503
  • ブラウザからは GitLab にアクセス可能
  • curl でも .git にアクセス可能
$ curl -I http://<社内GitLabのホスト>/your-group/your-repo.git
HTTP/1.1 200 OK
...

GitLab自体は動いているのに、Git コマンドだけが通らないという状況でした


原因:no_proxy の書き方ミス

環境変数 no_proxy を次のように設定していたのが原因でした

export no_proxy='http://<社内GitLabのホスト>'  # ← 間違い

no_proxyドメイン名またはIPアドレス だけを指定する必要があります
http:// のようなスキームを含めてしまうと、Gitはこれを無視して proxy を通してしまいます

つまり、Git だけが proxy 経由でアクセスし、結果として 503 を返されていたようです


正しい設定方法

以下のようにスキームを除いて設定する必要があります

export no_proxy='<社内GitLabのホスト>'  # ← 正しい

複数ドメインがある場合はカンマ区切りで指定します:

export no_proxy='localhost,127.0.0.1,<社内GitLabのホスト>'

解決までに試したこと

  • curl -I → 通信OK(GitLabは落ちていない)
  • git config --global http.version HTTP/1.1 → 効果なし
  • GIT_CURL_VERBOSE=1 git clone ... で通信ログ確認
  • Proxy設定の確認・解除
  • SSH経由での clone も検討(今回はそこまでせず原因に気づいた)

学んだこと

  • no_proxy の書式ミスでも Git は 503 を返す(しかも原因がわかりにくい)
  • Git の clone/push で謎の 503 エラーが出たら、proxy 設定を疑う
  • curl やブラウザで通っても、Git の HTTP 通信は挙動が異なることがある

おわりに

今回のように、ちょっとした設定ミスが思わぬ落とし穴になります

もし同じように「GitLabにアクセスできるのに clone できない」というトラブルに遭遇した方の参考になれば、、

改めて思い返せば、そういや昨日、~/.bashrc編集したな~、、それが原因なのは明白じゃん、、と反省しました

自分の行動を振り返ったほうがデバックは早いかもしれません


参考リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?