ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Git プロキシ設定の全体像
社内ネットワークやファイアウォール環境で GitHub / GitLab / 自社 Git サーバへ接続する場合、HTTP/HTTPS プロキシ経由のアクセスが必要になります。Git は http.proxy という設定キーでプロキシを指定できます。設定範囲は 3 段階で、優先度は リポジトリ > ユーザ > システム です。
| スコープ | コマンド | 保存先 |
|---|---|---|
| システム | git config --system http.proxy ... | /etc/gitconfig |
| ユーザ(推奨) | git config --global http.proxy ... | ~/.gitconfig |
| リポジトリ | git config http.proxy ... | .git/config |
基本設定: http.proxy / https.proxy
# HTTP / HTTPS 両方にプロキシを設定
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy http://proxy.example.com:8080
# 認証付きプロキシ(ユーザ名・パスワード埋め込み)
git config --global http.proxy http://user:password@proxy.example.com:8080
# HTTPS のみ別プロキシを使う
git config --global https.proxy http://secure-proxy.example.com:8443
# 現在の設定を確認
git config --global --get http.proxy
git config --global --get https.proxy
# 全プロキシ設定を一覧
git config --global --list | grep -i proxy
注意: http.proxy は HTTP プロトコルでのアクセスにだけ使われ、HTTPS 通信時には https.proxy が参照されます。多くの企業環境では同じプロキシなので両方に同じ値を入れます。
URL 別プロキシ設定
「社内 Git サーバには直結したいが GitHub にはプロキシ経由」のように接続先で振り分けたい場合は http.<URL>.proxy を使います:
# GitHub だけプロキシ経由
git config --global http.https://github.com.proxy http://proxy.example.com:8080
# 社内 GitLab は直結(空文字でプロキシを無効化)
git config --global http.https://gitlab.internal.example.com.proxy ""
# 特定ホストパターン
git config --global http.https://*.googleusercontent.com.proxy http://proxy.example.com:8080
# 削除
git config --global --unset http.https://github.com.proxy
パスワード文字列のエスケープ
パスワードに @ や : や # などの記号が含まれると URL パーサが誤動作します。パーセントエンコーディングが必要です:
| 文字 | エスケープ後 | 意味 |
|---|---|---|
@ | %40 | ユーザ・ホスト区切りと衝突 |
: | %3A | ユーザ・パスワード区切りと衝突 |
/ | %2F | パス開始と衝突 |
# | %23 | フラグメント開始と衝突 |
| 半角空白 | %20 | URL に空白を含めない |
# 例: パスワード "P@ss:w0rd!"
git config --global http.proxy http://user:P%40ss%3Aw0rd%21@proxy.example.com:8080
環境変数による設定
git に限らず curl / wget / pip も同じ環境変数を参照します。シェル全体で揃えるならこちらが便利:
# ~/.bashrc / ~/.zshrc / /etc/profile.d/proxy.sh など
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1,.internal.example.com
# 小文字版も両方書いておくと無難
export http_proxy=$HTTP_PROXY
export https_proxy=$HTTPS_PROXY
export no_proxy=$NO_PROXY
# Windows (PowerShell) では
# $env:HTTPS_PROXY = "http://proxy.example.com:8080"
NO_PROXY にはプロキシを通したくないホストを列挙します。社内 Git サーバや localhost を入れておくと便利です。
SSH 接続をプロキシ経由にする
Git の SSH (git@github.com:user/repo.git) は http.proxy の影響を受けません。SSH の ProxyCommand / ProxyJump を使います:
# ~/.ssh/config
Host github.com
HostName github.com
User git
# nc / ncat を使った HTTP CONNECT 中継(GNU netcat 推奨)
ProxyCommand nc -X connect -x proxy.example.com:8080 %h %p
# corkscrew を使う場合
Host github.com
ProxyCommand corkscrew proxy.example.com 8080 %h %p ~/.ssh/proxy_auth
# 多段 SSH(踏み台経由)
Host github.com
ProxyJump bastion.example.com
GitHub は SSH を 443 ポートでも受け付けます。会社のプロキシが 22 番ポートをブロックしている場合、443 経由なら HTTPS と同じ扱いでプロキシを通れます:
# ~/.ssh/config
Host github.com
HostName ssh.github.com
Port 443
User git
# 接続テスト
# ssh -T git@github.com
# → Hi <user>! You've successfully authenticated...
NTLM 認証(Active Directory プロキシ)対策
古い企業プロキシは Basic 認証ではなく NTLM / Kerberos を要求します。Git は NTLM を直接話せないので cntlm をローカル中継として挟みます:
# Ubuntu
sudo apt install cntlm
# /etc/cntlm.conf 設定例
# Username yourname
# Domain EXAMPLE
# PassNTLMv2 <生成したハッシュ>
# Proxy proxy.example.com:8080
# Listen 3128
# パスワードハッシュ生成
cntlm -H
# 起動
sudo systemctl start cntlm
# Git からは cntlm(ローカル 3128)を見る
git config --global http.proxy http://127.0.0.1:3128
git config --global https.proxy http://127.0.0.1:3128
SSL 証明書まわり
SSL 終端プロキシ(社内プロキシが中間者として独自 CA 証明書を発行)の環境では、自社 CA 証明書を Git に渡す必要があります:
# 自社 CA を Git に教える
git config --global http.sslCAInfo /etc/ssl/certs/company-ca-bundle.pem
# OS の CA バンドルを使う
git config --global http.sslCAPath /etc/ssl/certs
# やむを得ず検証をスキップ(非推奨)
git config --global http.sslVerify false
# 特定ホストだけ検証スキップ
git config --global http.https://internal-git.example.com.sslVerify false
プロキシ解除と確認
# 解除
git config --global --unset http.proxy
git config --global --unset https.proxy
# 全プロキシ系設定を削除
git config --global --unset-all http.proxy
git config --global --unset-all https.proxy
# 確認: もう設定されていないこと
git config --global --get http.proxy # → 何も表示されない
git config --global --list | grep -i proxy
# それでもうまくいかないときは環境変数を疑う
env | grep -i proxy
unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy
トラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
Could not resolve host: github.com | DNS 解決不可(プロキシ越し DNS 必要) | プロキシ設定 or hosts ファイル |
Failed to connect to proxy.example.com port 8080 | プロキシダウン or ホスト名誤り | ping / telnet で疎通確認 |
error: RPC failed; HTTP 407 | プロキシ認証失敗 | パスワード再設定 / エスケープ確認 |
SSL certificate problem: unable to get local issuer certificate | 自社 CA 未登録 | http.sslCAInfo |
fatal: unable to access ... Empty reply from server | プロキシが HTTPS CONNECT を拒否 | プロキシ管理者に確認 |
FAQ
Q: パスワードを平文で書きたくない
A: cntlm をローカル中継として挟むか、git credential ヘルパーで OS のキーチェーンに保存。~/.gitconfig はパーミッション 600 にしておく。
Q: 在宅勤務時にプロキシ無し、出社時にプロキシ有り、を自動切替したい
A: ~/.gitconfig の [includeIf "gitdir:...] や、シェル関数で git config --global を切替えるスクリプトを作る。ネットワーク自動検出は OS の autoproxy 機能や direnv も活用可。
Q: GitHub Desktop / VS Code の Git 連携にも反映される?
A: git config --global は ~/.gitconfig に書かれるので、内部で同じ git を呼ぶアプリには反映されます。ただし VS Code の組み込み機能(HTTP リクエスト)には別途 http.proxy 設定が必要。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 用語一覧
- エラー一覧
- git本体のインストール(Linux)
- Linuxサーバーへのgit導入とクライアントのセットアップ
- リモートリポジトリをローカルリポジトリとしてクローンする方法
- リモートとローカルのリポジトリを同期(pull)する方法
- 設定の確認
- gitユーザー名とemailの設定
- リモートリポジトリの作成
- ローカルリポジトリの作成
- 新規ファイル/ディレクトリをインデックスに登録
- インデックスの登録状態を確認
- ローカルリポジトリの変更をコミット
- コミット履歴の確認
- クライアントからリモートリポジトリの接続設定、確認、削除
- リポジトリへのプッシュ
- リモートリポジトリからクライアントへのSSHクローン
- リモートとローカルの差分表示
- バージョンの確認
- プロキシの設定
- ローカルをリモートリポジトリの状態に戻す
- ブランチの作成, 一覧表示, 切り替え
- ブランチのマージと削除
- リベース
- .gitignoreの書き方
- .gitignoreの設定が反映されない場合
- 特定のファイルをgitの管理から外す方法
- 参照(ORIG_HEAD, HEAD, FETCH_HEAD)
- git rm [-r --cached] の取り消し
- 一部のディレクトリ/ファイルのみをリポジトリから復元する方法
- ローカルとリモートリポジトリの有無を同期
- pushの取消し方法
- マージツールの起動方法
- Gitで「MERGING」の状態
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?