Clash の基礎
Clash の基本概念、位置付け、使用シナリオを理解する
Clash は、Go 言語で記述され、GPL-3.0 オープンソースライセンスに従う、ルールベースのクロスプラットフォームネットワークプロキシツールです。YAML 設定ファイルを介してプロキシノード、ルーティングルール、およびアウトバウンドポリシーグループを定義し、ネットワークトラフィックの詳細な制御を実現します。
現在最も活発なコアバージョンは Mihomo(旧 Clash.Meta)であり、元のバージョンに多数の最新のプロキシプロトコルのサポートと機能拡張が追加されており、コミュニティで最も推奨される選択肢として認識されています。
Clash コア(Mihomo)およびすべての主要なグラフィカルクライアントは完全に無料でオープンソースであり、永久に課金されることはありません:
- Clash Verge Rev — 無料のオープンソース(MIT ライセンス)
- FlClash — 無料のオープンソース(GPL-3.0 ライセンス)
- ClashMeta for Android — 無料のオープンソース(GPL-3.0 ライセンス)
- Mihomo コア — 無料のオープンソース(GPL-3.0 ライセンス)
注意:プロキシノードサービス(プロバイダー)は独立したサードパーティのサービスであり、通常はトラフィックまたは月額料金で請求され、Clash ソフトウェア自体とは関係ありません。
- VPN:すべてのトラフィックを暗号化トンネル経由で VPN サーバーに転送します。国内外のトラフィックが一律にプロキシを経由するため、国内のウェブサイトへのアクセスが遅くなり、柔軟な制御ができません。
- Clash:ルールに基づいてトラフィックを詳細にルーティングし、国内のトラフィックは直接接続(高速)し、海外のトラフィックはプロキシを経由します。20 以上のプロトコルをサポートし、プロセスレベルまでのトラフィック制御が可能です。
ネットワークを柔軟に制御する必要があるユーザーにとって、Clash のルールベースのルーティング機能は従来の VPN をはるかに凌駕しており、より推奨される選択肢です。
Mihomo(旧称 Clash.Meta)は、Clash の機能拡張されたコミュニティフォークであり、現在最も活発で機能が充実したコアバージョンです。主な拡張機能には以下が含まれます:
- Hysteria2、TUIC v5、VLESS、WireGuard などの新しいプロトコルのネイティブサポート
- Reality トランスポート層、ECH などの最新のセキュリティ機能
- より完璧な TUN モードと Rule-Set ルールセット
- Proxy Provider サブスクリプション管理、MixedPort 混合ポート
現在、ほとんどのグラフィカルクライアント(Clash Verge Rev、FlClash)はデフォルトで Mihomo コアを使用しており、そのまま選択して使用できます。
- Windows 10/11:Clash Verge Rev、Clash Nyanpasu、FlClash
- macOS 11+:Clash Verge Rev、FlClash、ClashX Meta(Intel および Apple Silicon の両方をサポート)
- Linux:Clash Verge Rev、FlClash(主要なディストリビューションをサポート)
- Android 7.0+:ClashMeta for Android
- iOS / iPadOS:Stash、Shadowrocket(App Store での購入が必要)
各プラットフォームの最新バージョンを入手するには、ダウンロードセンターにアクセスしてください。
インストールと設定
ゼロからクライアントをインストールし、サブスクリプションをインポートして基本設定を完了する
ダウンロードセンターにアクセスし、オペレーティングシステムに応じて対応するクライアントを選択します。各プラットフォームの推奨クライアント:
- Windows / macOS / Linux:Clash Verge Rev をダウンロードし、インストーラーを実行してプロンプトに従って操作します
- Android:ClashMeta for Android の APK をダウンロードし、「提供元不明のアプリのインストールを許可」を有効にしてからインストールします
- iOS:App Store で Stash を検索して購入し、インストールします
Clash Verge Rev を例に挙げます(他のクライアントでも操作は同様です):
- ソフトウェアを開き、左側の「プロファイル (Profiles)」メニューをクリックします
- 右上の「+」をクリック →「リモート」を選択します
- 「URL」欄にプロバイダーが提供した Clash サブスクリプションリンクを貼り付け、備考名を入力します
- 「ダウンロード」をクリックし、完了したらチェックマークをクリックして現在の設定として指定します
自動更新(推奨間隔は 24 時間)を有効にすることをお勧めします。これにより、ノードリストが自動的に最新の状態に保たれます。
Clash 設定ファイルは YAML 形式(config.yaml)であり、以下の主要な部分が含まれています:
proxies:ノードリスト、プロキシサーバー情報を定義proxy-groups:ポリシーグループ、URL-Test 自動速度選択や Select 手動選択などrules:ルーティングルール、上から下に順番に一致dns:DNS 設定、アップストリーム DNS と解決モードを指定可能
任意のテキストエディタで変更できますが、VS Code(YAML プラグインをインストール)を使用することをお勧めします。インデントエラーを自動的に検出できます。変更後、クライアントで設定を再ロードすると有効になります。
主要なクライアントには、起動時の自動実行スイッチが組み込まれています:
- Clash Verge Rev:設定 → システム設定 → 起動時に自動実行;ポップアップを避けるために「サイレント起動」を同時に有効にすることもできます
- FlClash:アプリ設定 → 起動時の自動実行
- ClashMeta for Android:設定 → 起動時に自動実行;システム権限で自動起動を許可する必要があります
また、システムプロキシの自動有効化を同時に有効にすることをお勧めします。これにより、起動するたびに Clash が自動的にシステムトラフィックを引き継ぎ、手動操作が不要になります。
設定ファイルの保存パス:
- Windows:
%APPDATA%\clash-verge - macOS:
~/Library/Application Support/clash-verge - Linux:
~/.config/clash-verge
ディレクトリ全体を新しいデバイスの対応する場所にコピーし、クライアントを再インストールすると、すべての設定が復元されます。サブスクリプションリンクのみを使用している場合は、新しいデバイスでリンクを再インポートして更新するのが最も簡単な方法であり、ファイルを手動で移行する必要はありません。
日常的な使用
ノード管理、モード切り替え、および高度な機能の使用方法
- ルールモード(Rule):設定ファイル内のルールに従って 1 つずつ照合し、各接続をプロキシ経由にするか直接接続にするかを自動的に決定します。日常的な使用におすすめで、国内外のどちらのアクセスも高速です。
- グローバルモード(Global):ルールの照合をバイパスして、すべてのトラフィックをプロキシノードに強制的に経由させます。ノードの一時的なテストに適していますが、国内のウェブサイトの読み込みが遅くなります。
- ダイレクトモード(Direct):すべてのトラフィックを直接接続します。これは、プロキシを完全にオフにすることと同じです。ネットワークの問題をトラブルシューティングする際の一時的な使用に適しています。
クライアントの「プロキシ (Proxies)」または「ノード (Nodes)」ページで、速度テストボタン(稲妻アイコン)をクリックして、すべてのノードの遅延テストを開始できます。結果はノードの横にリアルタイムで表示されます。ポリシーグループ内のノード名をクリックすると、再起動することなくすぐに切り替わります。
URL-Test ポリシーグループを使用すると、Clash は手動操作なしで、遅延が最も低いノードを自動的に選択します。遅延の参考値:100ms 以下は非常に快適、100~200msは通常の使用に問題なし、200ms 以上はラグが発生する可能性があります。
TUN モードで仮想ネットワークインターフェースを作成するには、管理者 / root 権限が必要です。Clash Verge Rev を例に挙げます:
- 「設定」→「システムプロキシ」セクションに移動します
- 「TUN モード」スイッチをオンにします
- システムから管理者権限を要求されたら、「はい」をクリックして許可します
- ドライバーのインストールが完了するのを待ちます(初回は約 10~30 秒かかります)
有効にすると、ゲームクライアントやコマンドラインツール(curl、git)など、システムプロキシをサポートしていないプログラムも Clash によって処理されます。
2 つの方法があります:
- ルール方式(推奨):設定ファイルの
rulesの上部に PROCESS-NAME ルールを追加します。例えば- PROCESS-NAME,Discord.exe,DIRECTのようにすると、そのプロセスのすべてのトラフィックが直接接続されます。 - クライアント UI:一部のクライアント(Clash Verge Rev など)では、「設定」に「バイパスリスト」機能があり、インターフェースから直接プロセス名や IP セグメントを追加できます。
バイパスが必要な一般的なアプリ:国内ゲーム(Steam、Steam、ローカルゲームなど)、企業イントラネットツール、一部の銀行アプリ。
- Clash Verge Rev:左側の「接続」メニューで、各接続のターゲットアドレス、使用しているノード、アップロード/ダウンロードトラフィックをリアルタイムで表示します
- ログレベル:設定でログレベルを
infoまたはdebugに設定すると、ルールのマッチングの詳細を表示でき、ルーティングの問題のトラブルシューティングに役立ちます - Web パネル:Yacd(
http://localhost:9090/ui)または MetaCubeX パネルを介して、視覚的な監視を取得します
ログは、「なぜこのウェブサイトがプロキシを経由しないのか」をトラブルシューティングするための最良のツールです。問題が発生した場合は、まずログを確認してください。
ネットワークと DNS
DNS モードの選択、漏洩防止設定、IPv6、および LAN 共有
- Fake-IP:アプリが DNS クエリを開始すると、Clash はすぐに偽の IP(
198.18.x.x)を返します。ルールのマッチングは元のドメイン名に基づいて行われ、実際の DNS クエリはプロキシ側で行われます。これにより、DNS 汚染を完全に回避し、接続の確立が速くなります。ほとんどのユーザーにお勧めします。 - Redir-Host:Clash は国内外の DNS に同時にクエリを実行し、解決結果に基づいてルートを決定します。互換性は高くなりますが、DNS 漏洩のリスクがあり、初回接続の遅延がわずかに高くなります。
実際の IP を必要とする一部のアプリ(一部のオンラインゲームの NAT 検出など)は、Fake-IP 下で異常になる可能性があります。そのアプリのドメイン名を fake-ip-filter ホワイトリストに追加することで解決できます。
DNS 漏洩を防ぐために推奨される設定の組み合わせ:
- Clash 組み込みの DNS モジュール(
dns: enable: true)を有効にし、システム DNS に依存しないようにします - 海外のドメイン名には暗号化された DNS を使用します(DoH の例:
https://1.1.1.1/dns-query) - Fake-IP モードを有効にして、アクセスしたドメイン名がアップストリーム DNS に公開されるのを防ぎます
- TUN モードを有効にして、DNS リクエストが Clash をバイパスして直接送信されないようにします
設定が完了したら、dnsleaktest.com を通じて検証できます。結果には、プロキシノードの場所の DNS のみが表示されるはずです。
Mihomo コアは、DNS AAAA レコードの解決、IPv6 ルールのマッチング(IP-CIDR6、GEOIP)、TUN デバイスの IPv6 ルーティング転送、およびプロキシノードの IPv6 アウトバウンド接続を網羅する、完全な IPv6 サポートを提供します。
有効化方法:設定ファイルの上部に ipv6: true を追加し、DNS 設定でも AAAA クエリが許可されていることを確認します。IPv6 接続に異常が発生した場合は、一時的に ipv6: false に設定して無効にし、問題をトラブルシューティングできます。
設定ファイルで allow-lan: true を設定すると、Clash は LAN からのプロキシリクエストを受け入れることができます。他のデバイスでは、WiFi 設定で HTTP プロキシを設定し、サーバーに Clash を実行しているデバイスの LAN IP(例:192.168.1.100)を入力し、ポートに混合ポート(デフォルトは 7890)を入力するだけです。スマートフォン、タブレット、スマートテレビがこの方法をサポートしています。
トラブルシューティング
問題が発生した場合のトラブルシューティングのアイデアと一般的な解決策
以下の手順に従って 1 つずつトラブルシューティングを行います:
- ステップ 1:Clash を閉じ、プロキシなしでネットワークが正常かどうかを確認します
- ステップ 2:サブスクリプションを手動で更新し、最新のノードリストに更新します
- ステップ 3:他のノードに切り替えます。一部のノードがブロックされている可能性があります
- ステップ 4:ファイアウォールが Clash のアウトバウンド接続をブロックしていないか確認します
- ステップ 5:ログレベルを
debugに設定し、特定の接続エラー情報を確認します
すべてのノードがタイムアウトする場合は、プロバイダーのサーバーの問題である可能性が高いです。プロバイダーのカスタマーサービスに連絡してノードのステータスを確認することをお勧めします。
- 低遅延ノードの選択:速度テスト後、遅延が 100ms 未満のノードを選択するか、URL-Test を使用して最速のノードを自動的に選択します
- プロキシモードの確認:「グローバルモード」ではなく「ルールモード」であることを確認し、国内のトラフィックが迂回するのを防ぎます
- より高速なプロトコルへの変更:Hysteria2 または TUIC は QUIC/UDP に基づいており、パケットロスが多く遅延が高いネットワークでは TCP プロトコルよりもはるかに優れたパフォーマンスを発揮します
- DNS の最適化:DoH / DoT を有効にして、DNS 解決の遅延を減らします
- プロバイダーへの連絡:すべてのノードが遅い場合は、プロバイダーの帯域幅が混雑している可能性があります。オフピーク時に使用するか、プランを変更してみてください
これは通常、ルールでそのウェブサイトが直接接続に設定されておらず、トラフィックが海外のノードにプロキシされていることが原因です。解決策:
- グローバルモードではなく「ルールモード」であることを確認します
- ルールの最上部に直接接続ルールを手動で追加します:
- DOMAIN-SUFFIX,example.local,DIRECT - GeoSite / GeoIP データベースを最新バージョンに更新します(通常、クライアントの設定に更新ボタンがあります)
- Loyalsoldier Clash Rules など、より完璧なコミュニティルールセットに置き換えます
- 権限不足:クライアントを管理者として再実行します(右クリック → 管理者として実行)
- ドライバーの競合:他の VPN ソフトウェア(WireGuard、OpenVPN、Cisco AnyConnect など)を閉じてから再試行してください
- Windows ドライバーの問題:設定 → サービスモード → Service Mode ドライバーを再インストールします
- 一時的な復旧:TUN モードをオフにし、システムプロキシモードに切り替えます
問題が解決しない場合は、GitHub Issues にログファイルを添付して、コミュニティのサポートを求めることができます。
このエラーは、Clash が使用しようとしているポート(デフォルトは 7890)がすでに他のプログラムによって占有されていることを示しています:
- 方法 1(推奨):設定ファイルの
mixed-portの値を変更します(例:7891に変更) - 方法 2:ポートを占有しているプログラムを見つけて閉じます。Windows:
netstat -ano | findstr 7890で PID を見つけ、タスクマネージャーで終了します。macOS / Linux:lsof -i :7890 - 方法 3:複数の Clash クライアントがインストールされている場合は、そのうちの 1 つだけが実行されていることを確認してください
関連する問題は見つかりませんでした。他のキーワードを試すか、カテゴリを閲覧して探してください。