レビュー Clash初心者 VPNとの違い プロキシ入門

開発者向けClash設定術:Git・SSH・npmを快適に使う方法

2026年7月26日 更新日:2026年7月26日 読了目安:約10分

はじめに:開発通信をClashで整える

開発中に GitHub のリポジトリ取得が止まったり、npmpnpm のパッケージダウンロードが何度も失敗したりすると、実装そのものよりネットワークの調査に時間を取られてしまいます。特に、ソースコード、コンテナイメージ、APIドキュメント、AIコーディングサービスなどを複数の海外サーバーから取得する環境では、ブラウザーだけにプロキシを設定しても問題が解決しないことがあります。

Clash を開発用の通信基盤として使う場合のポイントは、単に「すべての通信をプロキシへ送る」ことではありません。ターミナル、Git、SSH、パッケージマネージャーごとに通信方式を理解し、必要なドメインだけを適切なプロキシグループへ振り分けることが重要です。本記事では、Clash Verge Rev と Mihomo コアを前提に、Windows、macOS、Linuxで応用できる設定方法を紹介します。

この記事の目標

Git、SSH、npm系ツールの通信経路を整理し、接続確認と障害切り分けを自分で行える開発環境を作ります。

1開発環境で知っておきたいClashの基本

開発ツールの通信には、ブラウザーと異なる特徴があります。ブラウザーはOSのシステムプロキシを自動的に利用することが多い一方、GitやNode.jsのツールは独自の設定、環境変数、またはSSHの設定を参照します。そのため、Clashの画面で「System Proxy」を有効にしただけでは、すべてのコマンドが同じ経路になるとは限りません。

  • HTTP/HTTPS通信: GitのHTTPS接続、npmレジストリ、Visual Studio Codeの拡張機能などで利用されます。
  • TCP通信: SSH、Gitの22番ポート、データベース接続などで使われます。HTTPプロキシだけでは通らない場合があります。
  • DNS名前解決: レジストリやGitホスティングのドメインを正しく解決できないと、プロキシ以前に接続が失敗します。
  • TUNモード: アプリごとの対応状況に左右されにくく、ターミナルやGUIアプリを含むシステム通信をまとめて制御できます。

まずはClashの接続モードを確認しましょう。開発用PCでは、通常のSystem Proxyを基本にし、プロキシ設定を読まないツールやSSHを利用するときだけTUNモードを追加する方法が扱いやすいです。TUNモードを常時有効にする場合は、社内ネットワーク、ローカルプリンター、Docker、仮想マシンの通信が影響を受ける可能性があるため、除外ルールを準備してください。

利用時の注意

プロキシの利用可否や接続先の規約を確認し、会社のソースコードや認証情報を意図しない経路へ送らないでください。秘密鍵やアクセストークンを設定ファイルへ直接書くのも避けましょう。

2Git・npm向けのルールとDNSを設定する

開発用のルールは、用途ごとにグループを分けると管理しやすくなります。たとえば、海外の開発サービスをまとめる DevProxy、国内サービスや社内ネットワークへ直接接続する DIRECT、障害時に切り替える Fallback を用意します。プロバイダーの設定を直接編集できない場合は、Clash Verge RevのMerge設定やオーバーライド機能を利用してください。

開発サービス向けルール例
proxy-groups: - name: DevProxy type: select proxies: - Proxy - Fallback - DIRECT rules: - DOMAIN-SUFFIX,github.com,DevProxy - DOMAIN-SUFFIX,githubusercontent.com,DevProxy - DOMAIN-SUFFIX,githubassets.com,DevProxy - DOMAIN-SUFFIX,npmjs.org,DevProxy - DOMAIN-SUFFIX,npmjs.com,DevProxy - DOMAIN-SUFFIX,registry.npmjs.org,DevProxy - DOMAIN-SUFFIX,pypi.org,DevProxy - DOMAIN-SUFFIX,docker.io,DevProxy - DOMAIN-SUFFIX,ghcr.io,DevProxy - DOMAIN-SUFFIX,openai.com,DevProxy - DOMAIN-SUFFIX,anthropic.com,DevProxy - DOMAIN-SUFFIX,localhost,DIRECT - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve - MATCH,DIRECT

ルールの順番は非常に重要です。Clashは上から順番に判定するため、広い範囲を対象にする MATCH は最後へ置きます。GitHubの実際の通信先は、リポジトリ本体、静的アセット、ファイル配信などに分かれることがあります。接続ログを確認し、必要なドメインを追加してください。

開発者向けDNS設定

パッケージのインストールが「名前解決できません」「一時的に利用できません」と表示される場合、DNS設定を見直します。Mihomoでは、通常の名前解決とプロキシ経由の名前解決を分ける設定が可能です。Fake-IPを利用する場合は、社内ドメイン、プリンター、Docker関連の名前が壊れないようにFake-IP除外を調整します。

dns: enable: true enhanced-mode: fake-ip nameserver: - https://1.1.1.1/dns-query - https://dns.google/dns-query fake-ip-filter: - "*.lan" - "*.local" - "localhost" - "+.docker.internal"

設定変更後は、OSやNode.jsのDNSキャッシュが残っていないか確認します。ブラウザーだけが古い結果を保持している場合もあるため、ClashのDNSキャッシュをクリアし、必要に応じてターミナルを再起動してください。

3実践:ターミナル、Git、npm、SSHを接続する

ここでは、設定を変更してから実際の通信を確認する手順を紹介します。最初からすべてをTUNモードへ移行するのではなく、どのツールがどのプロキシ設定を参照しているかを一つずつ確認するのが安全です。

1. ターミナルの環境変数を確認

Clashの混合ポートが 7890 である場合、シェルで次のように設定します。ポート番号は実際のClash画面に表示されている値へ置き換えてください。

export HTTP_PROXY=http://127.0.0.1:7890 export HTTPS_PROXY=http://127.0.0.1:7890 export ALL_PROXY=socks5://127.0.0.1:7891 export NO_PROXY=localhost,127.0.0.1,.local

Windows PowerShellでは $env:HTTPS_PROXY、Windowsのコマンドプロンプトでは set HTTPS_PROXY=... を使用します。シェルの設定ファイルへ永続化する場合は、共有PCやログ保存環境で値が見える可能性を考慮してください。

2. GitのHTTPS接続を設定

GitHubをHTTPSで利用する場合は、Git専用のプロキシを設定できます。

git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy http://127.0.0.1:7890 git config --global --get-regexp 'http.*proxy'

接続が成功したら、設定が反映されているかを確認します。社内Gitサーバーだけ直接接続したい場合は、ホスト単位で例外を設定する方法もあります。不要になった設定は次のコマンドで削除できます。

git config --global --unset http.proxy git config --global --unset https.proxy
3. npm・pnpm・Yarnを確認

npmは独自の設定を持つため、環境変数だけで動作しない場合があります。

npm config set proxy http://127.0.0.1:7890 npm config set https-proxy http://127.0.0.1:7890 npm config get proxy npm config get https-proxy

プロジェクトごとにレジストリを固定する場合は、公開リポジトリと社内レジストリを混同しないようにします。設定を解除するときは、次のコマンドを使います。

npm config delete proxy npm config delete https-proxy

pnpmやYarnもHTTPプロキシ環境変数を利用できますが、バージョンや設定ファイルによって挙動が異なります。npm pingpnpm ping、または実際の依存関係の取得で確認し、成功したからといって認証付きレジストリまで同じ設定で動くとは限らない点に注意してください。

4. SSH接続を設定

SSHはHTTPプロキシ設定をそのまま利用しません。ClashのSOCKSポートへ接続するには、OpenSSHの設定でプロキシコマンドを指定します。

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 ProxyCommand nc -x 127.0.0.1:7891 -X 5 %h %p

環境によっては nc のオプションが異なります。接続確認には ssh -T [email protected]ssh -vT [email protected] を利用し、Clashの接続ログに対象ホストが表示されるか確認します。SSHをHTTPSへ切り替える方法もありますが、既存の鍵運用や組織のポリシーを優先してください。

4AIコーディング環境とコンテナの安定化

2026年の開発環境では、AIコード補完、リモート開発、コンテナビルドなどが日常的に使われています。これらは複数のAPI、CDN、認証、ファイル配信ドメインへ接続するため、単一のドメインだけを許可しても完全には動作しないことがあります。

  • AIコーディングツール: ログイン用ドメイン、APIエンドポイント、モデルや拡張機能の配信先を接続ログで確認します。
  • Docker: Docker Hubの認証、イメージマニフェスト、レイヤー配信で異なるホストが使われるため、docker pull のログとClashのログを照合します。
  • VS Code Remote: ローカルのVS Codeとリモート側のサーバーが別々に通信するため、ローカルだけでなくリモート環境のプロキシ変数も確認します。
  • 証明書検証: HTTPSの証明書検証を無効にして解決しようとしないでください。プロキシの証明書、OSの時刻、企業ネットワークのCAを正しく確認します。

ログを使った切り分け

Clashの接続ログを開いた状態で、Git、npm、SSHを一つずつ実行します。対象ドメインがログに出ない場合は、ツールがプロキシを利用していないかDNSで失敗している可能性があります。ログに出ていても失敗する場合は、ノード、認証、TLS、リモート側の制限を確認します。

よくある問題と解決方法

Git cloneがタイムアウトする

まず、HTTPSで取得しているのかSSHで取得しているのかを確認します。HTTPSならGitのproxy設定とClashのHTTPポート、SSHなら~/.ssh/configとSOCKSポートを確認してください。GitHubのドメインがDIRECTになっている場合は、ルールの順番やグループ名の綴りを見直します。

npm installが途中で止まる

レジストリ設定、プロキシ設定、ロックファイルに記録された依存先を順に確認します。npm config listで意図しない古いプロキシが残っていないか調べ、Clashログでレジストリ以外の配布ドメインも確認します。証明書エラーの場合は、安易にstrict-ssl=falseへ変更せず、システム時刻とCA証明書を修正してください。

ローカル開発サーバーに接続できない

localhost127.0.0.1、プライベートアドレスをNO_PROXYとClashのルールでDIRECTにします。DockerやKubernetesを利用している場合は、コンテナ内部から見たホスト名が異なることがあります。ホスト側の設定を変更しても、コンテナ内の環境変数やDNS設定には反映されないため、両方を確認してください。

Q&A開発者向けClash設定のFAQ

System ProxyだけでGitやnpmは使えますか?

ツールとバージョンによって異なります。Gitは独自の設定、npmは独自設定や環境変数を参照するため、System Proxyだけでは不十分な場合があります。まず環境変数と各ツールの設定値を確認し、必要な場合だけ個別にプロキシを指定してください。

TUNモードは開発PCで常に有効にすべきですか?

すべてのアプリを確実に制御できる反面、社内ネットワーク、仮想マシン、Docker、ゲームやプリンターの通信に影響することがあります。通常はSystem Proxyから始め、プロキシ設定を持たないアプリが必要になったときにTUNモードを試すのがおすすめです。

SSHをHTTPSプロキシ経由にできますか?

可能ですが、HTTP CONNECT対応の中継ツールやSSHのProxyCommandが必要です。ClashのSOCKSポートを利用できる環境では、OpenSSHとSOCKS対応のncを組み合わせる方法が比較的分かりやすく、接続ログも確認しやすいでしょう。

プロキシ設定で秘密情報が漏れる心配はありますか?

あります。信頼できないノードでは認証情報や通信メタデータを扱わないでください。SSH秘密鍵を共有フォルダーへ置かず、トークンをコマンド履歴やYAMLへ直接記録しないことも重要です。開発用と個人用の設定を分離し、不要なログ保存も避けてください。

最後に確認すること

設定後は、Gitの取得、パッケージのインストール、SSHの認証、ローカルサービスへの接続を個別にテストし、成功した経路をメモしておくと、次回の障害対応が大幅に速くなります。

Clashを無料でダウンロード — 快適なネット体験をはじめよう →