clash / オープンソースハブClashオープンソースハブ · 全プラットフォームクライアントダウンロード
Public**ルールベースの分流**を採用したオープンソースプロキシクライアントのダウンロード・ドキュメントサイト。Windows、macOS、Android、iOS、Linuxの5プラットフォームのインストーラー取得、**サブスクリプション導入**、**TUNモード**設定をカバーし、日本語ガイドとトラブルシューティング手冊を掲載。
コア機能
以下の5つのドキュメントはClashの5つのコア機能に対応しています。左側のファイル名をクリックすると、右側に説明と実際の設定例が表示されます。
rules.md
Clashは設定ファイルのrulesセクションに記載された順番で、新規接続を1つずつ照合していく。DOMAIN-SUFFIXはドメインの末尾を、DOMAIN-KEYWORDはキーワードの含有を、GEOIPは接続先IPの国・地域を判定し、MATCHは最後の受け皿として使う。マッチした時点で照合は止まり、先に書かれたルールほど優先度が高い。全プロキシ経由の一括転送と比べ、ルールベースの分流ならLAN内通信や普段よく使う直結サイトを迂回させず、プロキシが必要なドメインだけを的確に振り分けられる。ルールソースはサブスクリプション内蔵、ローカル追加、rule-providersによるリモートルールセットの3種類に対応し、保存すればホットリロードで即時反映されクライアントの再起動は不要。
rules:
- DOMAIN-SUFFIX,github.com,PROXY
- DOMAIN-KEYWORD,google,PROXY
- GEOIP,CN,DIRECT
- MATCH,PROXY
tun-mode.md
システムプロキシはアプリ側がプロキシ設定を読み取ることを前提としており、コマンドラインツールやゲームクライアント、一部のデスクトップソフトはそれを無視することが少なくない。TUNモードはシステム内に仮想ネットワークアダプタを作成し、ネットワーク層で全ての送信トラフィックを引き受けてからClashカーネルにルール処理を委ねる仕組みで、システムプロキシに従わないプログラムも取りこぼさずカバーする。設定画面のTUN/仮想アダプタスイッチから有効化でき、Windowsでは初回起動時に管理者権限でサービスをインストールする必要があり、macOSとLinuxでは一度システムの許可を求められる。DNSハイジャックをfake-ipと組み合わせればDNS漏洩を防げるため、全体制御シナリオの標準構成となっている。
tun:
enable: true
stack: system
auto-route: true
dns-hijack:
- any:53
subscription.md
サブスクリプションとは、完全なYAML設定を返すURLのことで、ノード・ポリシーグループ・ルールはすべてここから配信される。クライアントにリンクを貼り付けるだけで導入でき、自動更新間隔も設定可能——サービス提供者がノードを調整すれば期限到来時に新しい設定を自動取得し、手動でファイルを差し替える必要はない。複数のサブスクリプションを併存させ、個別に切り替えることもできる。更新に失敗した場合は、まずブラウザでサブスクリプションリンクを直接開き、返ってくるのがYAMLテキストであってHTMLのエラーページではないことを確認し、続いてリンクの有効期限や、サブスクリプション変換サービスによるフォーマット適合が必要かどうかを確認する。当サイトのトラブルシューティング手冊には各エラーへの対応項目を用意している。
# サブスクリプションの返却内容を手動で確認する
curl -A "clash" -sL "https://example.com/sub?token=xxxx" | head -n 20
# 正常であればproxies: / proxy-groups: から始まるYAMLが出力される
policy-group.md
ポリシーグループは複数のノードをまとめ、ルールから参照できる論理単位を作る仕組みだ。selectグループはユーザーが手動で選択し、url-testグループはグループ内ノードに定期的に遅延テストを行い最速の1つに自動切り替え、fallbackグループは順番に可用性を検査し優先ノードが失効すると次に自動降格、load-balanceグループは接続を複数ノードへ分散させる。ルールの末尾には具体的なノード名ではなくポリシーグループ名を書くため、ノード構成が変わってもグループ内のメンバーを調整するだけでよく、ルール自体を書き換える必要はない。これはClash設定の保守性を支える中核的な仕組みであり、単純なプロキシのオン・オフとは一線を画す部分だ。
proxy-groups:
- name: AUTO
type: url-test
url: http://www.gstatic.com/generate_204
interval: 300
proxies: [node-a, node-b, node-c]
dashboard.md
Clashカーネルはexternal-controllerを通じて一連のRESTful APIを公開し、Web管理パネルはこれを使ってノード切り替え、遅延テスト、接続状況の確認、ログ表示を実現している。デスクトップクライアントには大抵パネルへの入口が内蔵されており、ブラウザから直接ローカルポートにアクセスしてmetacubexdなどのサードパーティ製パネルを使うこともできる。トラブル調査で最も使われるのは接続ページで、各アクティブ接続にヒットしたルールと出口ノードが表示され、あるドメインが直結かプロキシ経由かを一目で確認できる。ログページではlog-level: debugと組み合わせることでDNS解決とルール照合の全過程を確認できる。
external-controller: 127.0.0.1:9090
secret: ""
# ブラウザでパネルを開いたら上記のアドレスを入力するとカーネルに接続できる
プラットフォーム別クライアント取得
5つのプラットフォームはそれぞれ独立したビルドを維持している。プラットフォームカードをクリックするとダウンロードページの対応セクションへ移動し、各プラットフォームには複数のクライアントを選択でき、ダウンロードページにはシステム要件とインストール手順も掲載している。
オープンソースエコシステムと更新の仕組み
history.md
Clashは2018年にGo言語でオープンソース化され、ルールベースの分流とYAML設定によってこの分野におけるデファクトスタンダードの設定形式となった。オリジナルのカーネルがアーカイブされた後は、コミュニティフォークのmihomo(旧称Clash Meta)が開発を継続し、より多くのプロキシプロトコル、DNSポリシー、TUNスタック実装を追加しつつ、オリジナルの設定形式との互換性を保っている。現在、各プラットフォームの主要なGUIクライアントはほぼすべて内部でmihomoカーネルを動かしている。
ecosystem.md
このエコシステムはカーネルとGUIクライアントの二層構造からなる。カーネルはプロトコル実装、ルール照合、トラフィック転送を担い、Clash Verge Rev、FlClash、Nyanpasuなどのクライアントはサブスクリプション管理、UI、システム統合を担う。いずれもオープンソースライセンスの下で開発され、コードは公開・検証可能だ。同じ設定ファイルは異なるクライアント間で共通して使えるため、クライアントを変えても設定をやり直す必要はない。
releases.md
カーネルと各クライアントはそれぞれ独自のリポジトリでバージョンをリリースしており、更新のペースも個別だ。当サイトのダウンロードページに表示されるバージョン番号とインストーラーへのリンクはバージョン一覧によって駆動され、一覧が更新されればページも自動的に追随するため、手動更新の遅れによる古いリンクが残ることはない。メンテナンスが終了したクライアントはアーカイブ状態を明示し、現在も更新が続く代替候補を案内する。
よくある質問セレクション
- サブスクリプションの更新に失敗したら?まずブラウザでサブスクリプションリンクを直接開き、YAMLが返っていてエラーページではないことを確認し、有効期限とフォーマットを調べる。対処手順を見る →
- プロキシを有効にしてもページが開かない場合は?ノード遅延 → ルールのヒット → DNS → システムプロキシの順に確認していく。チェックリストを見る →
- TUNモードとシステムプロキシ、どちらを選ぶ?ブラウザ利用であればシステムプロキシで十分だが、コマンドラインツールやゲームにはネットワーク層で制御するTUNが必要。用語を調べる →
- ポート7890が使用中と表示される?まず使用中のプロセスを特定するか、クライアント側で
mixed-portを直接変更する。コマンドを見る →
最新技術ノート
Clashは接続済みなのにページが開かない:ノード遅延からDNSまでの逐次チェックリスト
プロキシのスイッチは緑なのにブラウザはずっと読み込み中——原因はノード、ルール、DNS、システムプロキシのどこかにある可能性がある。易しい順に9つの確認ポイントを挙げる。
全文を読む →Clashでポート使用中と表示されたら:7890番ポートの競合プロセスを特定し混合ポートを変更する
起動時に bind: address already in use と表示されるのはデフォルトポートが使用中のためだ。3つのプラットフォームでの占有プロセス検索コマンドとmixed-port変更の手順をまとめる。
全文を読む →Clashクライアントの画面構成早わかり:プロキシページ、設定ページ、ログページの役割
初めてクライアントを開くと不慣れな画面に迷いやすい。ノードとポリシーグループ、サブスクリプション管理、接続記録それぞれの役割とよく使う操作場所をブロックごとに解説する。
全文を読む →