上級設定

Clash YAML 設定ファイル完全ガイド

Clash YAML 設定ファイルはプロキシシステム全体の核心であり、その構造とフィールドの仕様を習得することは上級ユーザーへの必須条件です。サブスクリプションリンクが提供する設定は汎用テンプレートであることが多く、特定のシナリオに最適化されていません。本記事は Clash 公式の設定ファイル完全解説です。各コアフィールドの定義と公式推奨のベストプラクティスを体系的に説明します。

設定ファイルの全体構造

完全な Clash 設定ファイルは6つの主要セクションで構成されます:グローバルパラメータ、DNS 設定、プロキシノード(proxies)、プロキシグループ(proxy-groups)、ルール(rules)、そしてオプションの TUN 設定です。この6つのセクションが協調して、Clash がすべてのネットワークリクエストをどのように処理するかを決定します。

port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver: [1.1.1.1, 8.8.8.8]

proxies: [ ... ]
proxy-groups: [ ... ]
rules: [ ... ]

グローバルパラメータ詳解

グローバルパラメータは Clash の基本動作を制御します。以下は最もよく使用されるフィールドです:

  • portsocks-port:それぞれ HTTP プロキシと SOCKS5 プロキシのリスニングポートで、デフォルトは 7890/7891 です。mixed-port: 7890 を使用して1つのポートで両プロトコルをサポートするよう統合することもできます。
  • allow-lantrue に設定すると、LAN 内の他のデバイスも Clash をプロキシサーバーとして利用できるようになり、ルーターレベルの共有プロキシシナリオに適しています。
  • mode:グローバルプロキシモード。rule(インテリジェントなトラフィック分類)、global(すべてプロキシ経由)、direct(すべて直接接続)から選択できます。
  • external-controller:RESTful API を公開するアドレスとポート。Yacd や MetaCubeXD などの各種ダッシュボードはこのインターフェースを通じて Clash と通信し、グラフィカルな制御を実現します。

proxies:プロキシノード設定

proxies 配列の各オブジェクトは1つのプロキシサーバーノードを表します。プロトコルによって必須フィールドは異なりますが、nametypeserverport はすべてのプロトコルに共通の必須項目です。

Clash(Mihomo カーネル)は Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC など20種類以上のプロトコルをサポートしています。以下は最もよく使用される3つのプロトコルの設定例です:

proxies:
  - name: "🇯🇵 日本-01"
    type: ss
    server: jp.example.com
    port: 8388
    cipher: chacha20-ietf-poly1305
    password: "your-password"
    udp: true

  - name: "🇺🇸 米国-01"
    type: vmess
    server: us.example.com
    port: 443
    uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: /ray
      headers:
        Host: us.example.com

  - name: "🇸🇬 シンガポール-01"
    type: trojan
    server: sg.example.com
    port: 443
    password: "your-password"
    sni: sg.example.com
    udp: true

proxy-groups:プロキシグループ

プロキシグループは Clash が他のプロキシツールと差別化されるコア機能です。複数のノードを1つの論理プロキシユニットとして組み合わせ、手動選択・自動速度テスト・フェイルオーバー・負荷分散の4つの動作方式をサポートします。さらにプロキシグループ同士を相互にネスト参照して、柔軟な階層プロキシアーキテクチャを構築できます。

proxy-groups:
  - name: "🚀 ノード選択"
    type: select
    proxies: ["♻️ 自動選択", "🇯🇵 日本-01", "🇺🇸 米国-01", DIRECT]

  - name: "♻️ 自動選択"
    type: url-test
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    proxies: ["🇯🇵 日本-01", "🇸🇬 シンガポール-01", "🇺🇸 米国-01"]

  - name: "🎬 ストリーミング"
    type: select
    proxies: ["🇺🇸 米国-01", "🇯🇵 日本-01"]

上記の設定は2層構造を構築しています。「ノード選択」プロキシグループは対外的に公開されるエントリーポイントとして機能し、ユーザーはここで具体的なノードを手動選択するか「自動選択」プロキシグループを選択できます。「自動選択」プロキシグループはバックグラウンドで継続的に速度テストを実施し、最もレイテンシの低いノードに自動切換えします。

rules:トラフィック分類ルール

ルールリストは上から順に逐一マッチングされ、いずれかのルールが一致した時点で対応するアクションが実行され、それ以降のマッチングは停止します。ルールの形式は タイプ,マッチング値,ポリシー で、最後の1行は必ず MATCH のフォールバックルールにする必要があります。

rules:
  - DOMAIN,google.com,🚀 ノード選択
  - DOMAIN-SUFFIX,youtube.com,🎬 ストリーミング
  - DOMAIN-KEYWORD,facebook,🚀 ノード選択
  - GEOIP,JP,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - MATCH,🚀 ノード選択
ルールリストを手動で管理するのは手間がかかります。RULE-SET を使ってコミュニティが管理するルールセットを参照することをお勧めします。Loyalsoldier/clash-rules などのルールセットには、直接接続ドメインとプロキシ経由ドメインのリストが精選されており、すぐに使えて定期的に更新されています。

設定のベストプラクティス

実際の使用において、体験を大幅に向上させるいくつかの設定のヒントがあります。第一に、よく使う地域限定ストリーミングプラットフォーム(Netflix、Disney+、YouTube)専用のプロキシグループを設定し、必要に応じて異なる地域のコンテンツにアクセスしやすくします。第二に、url-test プロキシグループに適切な tolerance(許容差)を設定し、レイテンシの差が小さい時の頻繁なノード切り替えを防ぎます。第三に、external-controller を Yacd や MetaCubeXD などのダッシュボードと組み合わせることで、ブラウザ上でリアルタイムに接続状態とトラフィックを監視でき、問題の切り分けが大幅に容易になります。

Clash
Clashを使い始めませんか?
無料でダウンロード。Windows・macOS・Linux・Android 全プラットフォーム対応。
今すぐダウンロード
記事ナビゲーション
関連記事
Clash
Clashをダウンロード
全プラットフォーム対応・無料
ダウンロードページへ