Clash の初期インストールと初期設定:全プラットフォーム共通の手順と注意点
5つのプラットフォームに共通する初期インストールの流れを整理します。インストーラーの選択、起動時の権限、サブスクリプションの読み込み、モードの確認。さらに権限・ポート・システムプロキシというつまずきやすい3つのポイントもまとめました。
インストール前にクライアントとコアの違いを押さえる
Clash の GUI クライアントとコアは別レイヤーの存在です。クライアントは画面、サブスクリプション管理、システムプロキシのオン/オフを担当し、コアは設定の解析、ルールのマッチング、トラフィックの転送を担当します。オリジナルの Clash コアはすでにメンテナンスを終了しており、現在の主要クライアントは mihomo コア(Clash Meta)を内蔵しています。プロトコル対応、ルール種別、TUN の実装はいずれも mihomo が基準です。
インストーラーを選ぶときは、まず2点を確認します。クライアントがコアを内蔵しているか(内蔵していればコアファイルを別途ダウンロードする必要はありません)、そしてコアのバージョンが使いたいインバウンド方式に対応しているかです。同じマシンで2つのプロキシクライアントを同時に動かさないでください。7890 ポートとシステムプロキシの設定を奪い合い、「スイッチはオンなのにトラフィックがプロキシを通らない」という症状が典型的です。
| プラットフォーム | 一般的なインストーラーの形式 | 初回起動時に対応が必要な権限 |
|---|---|---|
| Windows | .exe インストーラー / ポータブル版 zip | ファイアウォールの警告。TUN には管理者権限が必要で、通常はサービスモードを一度インストールすれば解決します |
| macOS | .dmg(チップアーキテクチャ別:Apple シリコン / Intel) | Gatekeeper の許可。TUN には特権ヘルパーを一度インストールし、システム設定で許可する必要があります |
| Android | .apk(一般的な端末は arm64 を選択) | 「不明なアプリのインストール」の許可。システムの VPN 承認ダイアログ。バッテリー最適化の解除 |
| iOS | App Store | VPN 構成を追加する際のシステム確認 |
| Linux | .deb / .rpm / AppImage | インストールには root が必要。TUN には CAP_NET_ADMIN または root での実行が必要 |
共通のインストール手順:インストール → 権限の許可 → サブスクリプションの読み込み → モードの確認
プラットフォームごとに画面は違いますが、手順は同じです。次の5ステップに沿って進め、途中で期待どおりの結果が得られない場合は、先に進まずその場で解決してください。
インストーラーを選ぶ
Windows は .exe、macOS はチップアーキテクチャを確認してから対応する dmg、Android は arm64 の apk、Linux はディストリビューションに合わせて deb か rpm を選びます。ダウンロードページの各プラットフォームのカードには、対応する OS バージョンとアーキテクチャが記載されています。
インストールし、初回起動時の権限リクエストを処理する
Windows のファイアウォール警告と権限昇格、macOS の「このまま開く」と特権ヘルパー、Android の VPN 承認、iOS の VPN 構成の確認は、すべてこのステップで完了させます。一度拒否した権限は自動では再表示されないため、システム設定から手動で許可し直すしかありません。
サブスクリプションを読み込む
「サブスクリプション」または「プロファイル」ページを開き、新規作成してサブスクリプションリンクを貼り付け、更新をクリックして設定のダウンロードが完了するまで待ちます。
ノードを選び、モードを確認する
「プロキシ」ページでポリシーグループを展開してノードを1つ選びます。「設定」ページでモードを「ルール」にし、初回設定では「グローバル」を使わないでください。
システムプロキシまたは TUN を有効にする
まずはどちらか一方だけを有効にします。デスクトップではシステムプロキシで動作確認し、通信できることを確認してから TUN に切り替えます。両方を同時に有効にすると、後のトラブルシューティングで問題がどのレイヤーにあるのか切り分けられなくなります。
Windows:TUN を権限昇格なしで使えるかはサービスモード次第
システムプロキシの変更は現在のユーザーのレジストリを書き換えるだけなので、通常権限で十分です。一方、TUN モードは仮想ネットワークアダプターを作成するため、管理者権限が必須です。多くのクライアントには「サービスモード」のスイッチがあり、システムサービスを一度インストールすれば以降は毎回権限昇格する必要がありません。この手順を飛ばすと、TUN のスイッチをオンにしてもすぐに戻ってしまい、コアのログに権限関連のエラー行が記録されます。
macOS:まず Gatekeeper を通し、次に特権ヘルパーを許可する
dmg から「アプリケーション」にドラッグした後、初回起動時に「開発元を確認できないため開けません」と表示された場合は、「システム設定」→「プライバシーとセキュリティ」を開き、ページ下部のブロックされた項目の「このまま開く」をクリックします。TUN を有効にすると、クライアントは特権ヘルパーのインストールを求めます(一部のバージョンではシステムネットワーク機能拡張を使用)。パスワードを入力して確認し、「システム設定」→「一般」→「ログイン項目と機能拡張」で該当項目を有効にしてください。そうしないとスイッチはオンでもトラフィックは直接接続のままです。
Android と iOS:VPN の承認は一度だけ、バックグラウンド維持は別途設定が必要
Android で apk をサイドロードする前に、「設定」→「アプリ」→「特別なアプリのアクセス」→「不明なアプリのインストール」でインストール元を許可します。初めて接続をタップするとシステムの VPN 承認ダイアログが表示されるので、信頼にチェックを入れて確定します。その後、バッテリー設定でクライアントを「制限なし」にしてください。そうしないと画面オフ後にプロセスがシステムに回収され、数分おきに切断される症状が出ます。
iOS は App Store からインストールした後、初回接続時に「VPN 構成を追加」というシステム確認が表示されるので、ロック画面のパスコードか生体認証で承認します。ここで拒否すると設定に VPN の項目が作成されず、スイッチはすぐに戻ってしまいます。「設定」→「一般」→「VPN とデバイス管理」で残留項目がないか確認してください。
Linux:インストールは root、TUN は capability で
deb は sudo dpkg -i、rpm は sudo rpm -ivh、AppImage は chmod +x してから実行します。TUN モードは仮想ネットワークアダプターを作成するため、毎回 root で起動するよりも、バイナリにネットワーク管理の capability を付与するほうが手軽です:
sudo setcap cap_net_admin+ep /usr/local/bin/mihomo
バイナリを再インストールまたはアップグレードすると capability が失われるため、もう一度実行する必要があります。systemd で常駐させる場合は、unit 内で直接 root 実行を指定する方法もあります。
サブスクリプションの読み込みとモードの確認
読み込み作業自体は3ステップだけです。サブスクリプションリンクをコピー → クライアントの「サブスクリプション」/「プロファイル」ページを開く → 新規作成してリンクを貼り付け → 更新をクリック。設定のダウンロードに成功すると、ノードが「プロキシ」ページのポリシーグループに表示されます。
ここでつまずく場合、原因はたいてい次の3つです:
- リンクが途中で切れている。サブスクリプションリンクは非常に長く、チャットアプリからコピーすると文字が欠けやすいです。貼り付けた後に末尾を確認するか、クライアントの「クリップボードから読み込み」を使いましょう。
- 更新時に TLS または証明書エラーが出る。まずシステムの時刻が正確か確認してください。時刻のずれが大きいと証明書の検証に失敗します。
- 更新は成功したのにノードがない。コアのログで具体的なエラーを確認してください。よくある原因は、サブスクリプションが Clash 形式の YAML ではなく、base64 でエンコードされたノードリストを返していることです。
モードの確認も同じくらい重要です。クライアントには通常「ルール」「グローバル」「ダイレクト」の3つの選択肢があります。初回設定では「ルール」のままにし、コアが rules セクションを上から順にマッチングします。ノード自体が使えるか検証したいときは、一時的に「グローバル」に切り替えてテストし、終わったら「ルール」に戻します。
以下はクライアントの GUI で実際に変更されるフィールドです。有効な値を照合するために使ってください:
mixed-port: 7890
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
mixed-port は HTTP と SOCKS5 のリクエストを同時に受け付けます。ブラウザのプロキシ拡張機能には 127.0.0.1:7890 を入力するだけで構いません。external-controller はダッシュボードと外部制御の待ち受けアドレスで、127.0.0.1 のまま変更しないでください。
初期設定でつまずきやすい3つの落とし穴
権限関連:TUN のスイッチがオンにしてもすぐ戻る
原因は基本的に3つだけです。Windows でサービスモードをインストールしていない、macOS で特権ヘルパーまたはネットワーク機能拡張がシステム設定で許可されていない、Linux で CAP_NET_ADMIN が不足している。判断方法は簡単で、コアのログに operation not permitted や TUN インターフェースの設定失敗を示すエラー行がないか確認します。
ポート関連:7890 が使用中、または LAN に公開されている
7890 は最も奪われやすいポートで、ブラウザのプロキシ拡張機能、古いバージョンのクライアント、パケットキャプチャツールが占有している可能性があります。まず使用中のプロセスを確認します:
# Windows
netstat -ano | findstr :7890
# macOS / Linux
lsof -i :7890
PID を確認してプロセスを終了するか、mixed-port を空いているポート(例:7891)に変更します。その際、ブラウザとシステムプロキシに設定したポートも同時に変更してください。そうしないと「ポートは変えたのにブラウザは古いポートに接続し続ける」状態になります。
もう一つの落とし穴は公開設定です。external-controller を 0.0.0.0:9090 に設定し、secret も設定していないと、同じ LAN 内の誰でも設定を読み取ったりノードを切り替えたりできます。
リモートでダッシュボードを確認したい場合は SSH ポートフォワーディングでローカルに転送してください。9090 を 0.0.0.0 で直接待ち受けたり、secret を設定せずにインターネットへ公開したりしないでください。
システムプロキシ関連:クライアント終了後にすべての Web ページが開けなくなる
システムプロキシは OS の設定に書き込まれるため、クライアントが強制終了やクラッシュをすると元に戻す間がありません。ブラウザは誰も待ち受けていない 7890 ポートにリクエストを送り続け、すべてのページに接続できない状態になります。手動で戻す場所は次のとおりです:
- Windows:「設定」→「ネットワークとインターネット」→「プロキシ」→「プロキシサーバーを使用する」をオフ。
- macOS:「システム設定」→「ネットワーク」→ 現在のネットワークの「詳細」→「プロキシ」→ HTTP、HTTPS、SOCKS の3項目のチェックを外す。
もう一つ見つけにくい競合要因があります。ブラウザにプロキシ管理拡張機能を入れ、独自の PAC ルールを有効にしていると、それがシステムプロキシを上書きし、「クライアントは接続済みなのにブラウザがプロキシを通らない」状態になります。切り分けの際はまずこうした拡張機能を無効にしてから再テストしてください。
初回の接続チェック:順番に確認する
- コアのログを確認します。DNS の待ち受けやルールの読み込み完了の記録があれば起動は正常です。error 行があれば先に解決してください。
- ノードの遅延を確認します。「プロキシ」ページで遅延テストを実行し、数値が出ればサブスクリプションとネットワークの両方が正常です。すべてタイムアウトする場合は、まずサブスクリプションの更新が成功しているか確認してください。
- モードが「ルール」になっていることを確認し、「接続」ページで実際の接続がどのルールにマッチしたかを見ます。すべてのトラフィックが MATCH のフォールバックに落ちていないか確認してください。
- ブラウザを介さずにポートを直接テストします:
200 ステータスコードが返れば、コアからノードまでの経路は正常で、問題はシステムプロキシかブラウザ側にあります。curl -x http://127.0.0.1:7890 -I https://example.com - DNS を確認します。fake-ip を有効にするとデフォルトのアドレス範囲は
198.18.0.1/16です。LAN や社内 VPN が同じ範囲を使っていると、一部のドメインで名前解決の異常が発生します。競合しない範囲に変更してください。 - 最後に比較テストをします。システムプロキシをオフにして TUN だけを有効にし、同じサイトにアクセスします。両方の方式で通信できれば、初期インストールと初期設定は完了です。
ダウンロードページではプラットフォーム別に利用可能なクライアントと対応するインストーラー形式を掲載しています。チュートリアルページでは、サブスクリプションの読み込み、モードの切り替え、TUN のオン/オフの一連の流れと、本文で触れた権限設定が各クライアントの画面のどこにあるのかを解説しています。