構成ファイルガイド

Clash config.yaml 完全ガイド

Clash 構成ファイルの各フィールドの意味を深く理解し、プロキシノード、グループ、ルール分流、DNS の完全な書き方をマスターして、ニーズに最適な設定を自作しましょう。

読了時間:約 15 分 難易度:上級 完全なコードサンプル付き
使用チュートリアル config.yaml 設定ガイド

config.yaml とは何ですか?

config.yaml は Clash の核となる構成ファイルで、YAML 形式で記述されます。これにより Clash カーネルに以下の情報を伝えます:

どのポートをリッスンするか

HTTP プロキシ、SOCKS5 プロキシ、透過プロキシそれぞれの使用ポート

どのようなプロキシノードがあるか

全ノードのサーバーアドレス、プロトコルタイプ、認証情報

どのようにグループ化し、切り替えるか

戦略ごとのグループ化:手動選択、自動速度測定、フェイルオーバー

トラフィック分流ルール

どのドメインを直結し、どれをプロキシに通し、どれを拒否するか

プロバイダーの購読を使用する場合、config.yaml は自動生成されるため、通常手動で書く必要はありません。本ガイドは、高度なカスタマイズを希望する方自作サーバーを構築しているユーザー向けです。

構成ファイルのデフォルト保存先

オペレーティングシステムデフォルトパス
Windows %APPDATA%\clash-verge\profiles\
macOS ~/.config/clash-verge/profiles/
Linux ~/.config/clash-verge/profiles/
Mihomo (CLI) ~/.config/mihomo/config.yaml
Clash Verge Rev では、「サブスクリプション」ページの「編集」ボタンから、内蔵エディタで現在の設定を直接修正できます。手動でファイルパスを探す必要はありません。

YAML 構文クイックリファレンス

構成ファイルを書く前に、YAML の主要なルールを理解しておきましょう。形式ミスによる Clash の起動エラーを防げます:

インデントは Tab ではなく半角スペースを使用してください。
# 正しい:スペース 2 つでインデント
proxies:
  - name: "Node-A"
    type: ss

# 誤り:Tab キーは使用不可
proxies:
	- name: "Node-A"   # ← Tab 文字、エラーになる
リストは - で始めます。
# 文字列リスト
nameserver:
  - 223.5.5.5
  - 119.29.29.29

# オブジェクトリスト(各項目に複数フィールド)
proxies:
  - name: "Node-A"
    type: ss
  - name: "Node-B"
    type: vmess
文字列に引用符が必要なケース
# 特殊文字を含む場合は引用符が必要
password: "p@ss:word#123"

# 英数字のみの場合は不要
log-level: info

# ブール値は引用符不要
allow-lan: true
udp: false
コメントは # を使います。
# 行全体のコメント
port: 7890  # 行末コメント

# コメントで各設定の目的を記録できます
mode: rule  # rule/global/direct

基礎構成パラメータ

ポート設定

Clash はローカルポートを介してプロキシサービスを提供します。各アプリは、プロキシ設定でこれらのポートを指定します。

config.yaml — ポート構成
# オプション 1: ポート分離(互換性最高)
port: 7890        # HTTP プロキシポート
socks-port: 7891  # SOCKS5 プロキシポート
redir-port: 7892  # 透過プロキシポート(Linux/macOS、TUN モード用)

# オプション 2: 混合ポート(推奨、HTTP+SOCKS5 統合)
mixed-port: 7890

# オプション 1 と排他的、いずれか一方を選択
フィールドタイプ説明
port整数HTTP プロキシポート。ブラウザのプロキシ設定に使用
socks-port整数SOCKS5 ポート。ゲームやコマンドラインツールに有効
mixed-port整数HTTP+SOCKS5 混合ポート(推奨)
redir-port整数透過プロキシポート。TUN/iptables 使用時に指定
allow-lan真偽値LAN 内の他デバイスからのプロキシ利用を許可するか(デフォルト: false)

プロキシモードとログ

config.yaml — モードとログ
mode: rule        # rule | global | direct
log-level: info  # silent | error | warning | info | debug
ipv6: false        # IPv6 トラフィックを受け入れるか
mode 値意味使用シーン
ruleルールモード(Rule)日常利用の第一選択。ルールに従い自動で分流します
globalグローバルプロキシ全トラフィックをプロキシ経由にする。一時的なテスト用
directグローバルダイレクト全トラフィックをプロキシに通さない。機能オフと同じ

外部制御インターフェース(RESTful API)

Clash は制御用の RESTful API を提供しています。Web 管理パネル(Metacubexd 等)はこの機能を介してトラフィックの監視やノードの切り替えを行います。

config.yaml — 外部制御
external-controller: 127.0.0.1:9090  # API リッスンアドレス
secret: ""                              # API アクセストークン(設定推奨)
external-ui: ui                         # Web パネルファイルディレクトリ(省略可)
external-ui-url: "https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip"
external-controller0.0.0.0:9090 に変更すると LAN 内の他デバイスから Web パネルに飛べますが、必ず secret を設定して不正アクセスを防いでください。

DNS 設定の詳細

Clash 内蔵の DNS モジュールは、システムの DNS 解析を乗っ取ることで、より精密な分流と DNS 漏洩防止を実現します。有効化を強く推奨します。 特にルールモードや TUN モード利用時には必須級です。

enhanced-mode:主要な DNS 動作モード

config.yaml — DNS 基礎
dns:
  enable: true                   # 内蔵 DNS モジュールを有効化
  listen: 0.0.0.0:53            # DNS リッスンアドレス
  ipv6: false                    # IPv6 DNS 解決を有効化
  enhanced-mode: fake-ip        # fake-ip(推奨)または redir-host
  fake-ip-range: 198.18.0.1/16 # Fake-IP アドレスプール範囲
enhanced-mode動作方法推奨度
fake-ip仮想 IP を返し、即座に接続要求を出す。Clash がバックグラウンドでドメイン名とルールを照合推奨
redir-host通常の DNS 解析を行い、得られた実 IP をもとに IP-CIDR ルールを照合互換性が高い

上位 DNS サーバーの構成

config.yaml — DNS サーバー
dns:
  # プライマリ DNS(ローカルドメイン解決用)
  nameserver:
    - 1.1.1.1             # Cloudflare DNS
    - 8.8.8.8             # Google DNS
    - system              # システム DNS に従う

  # フォールバック DNS(国際ドメイン用、DNS 汚染防止)
  # 暗号化 DNS(DoT/DoH)で ISP による傍受を防止
  fallback:
    - tls://8.8.8.8:853   # Google DNS over TLS
    - tls://1.1.1.1:853   # Cloudflare DNS over TLS
    - https://dns.google/dns-query  # Google DoH

  # フォールバック条件:非ローカル IP と判定された場合
  fallback-filter:
    geoip: true
    geoip-code: CN       # 非 CN IP でフォールバック DNS を使用
    ipcidr:
      - 240.0.0.0/4       # 予約アドレス範囲もフォールバック対象
なぜ 2 種類の DNS が必要なのですか? 国によっては海外への DNS 問い合わせに対し「DNS 汚染(誤情報の返答)」が行われます。そのため、海外ドメインへは暗号化 DNS (DoT/DoH) を使って正しい IP を得る必要があります。

fake-ip-filter:Fake-IP 対象外にするドメイン

一部のローカルサービス(NAS 探索、mDNS、一部のログイン認証等)は実 IP を必要とするため、Fake-IP の対象外にする必要があります:

config.yaml — fake-ip-filter
dns:
  fake-ip-filter:
    - '*.lan'                        # LAN ドメイン(Fake-IP バイパス)
    - '*.local'                      # ローカル mDNS
    - +.msftncsi.com      # MS NCSI(ネット接続確認)
    - +.stun.*.*                     # STUN サービス(WebRTC)
    - +.stun.*.*.*
    - time.*.com                     # NTP 時刻同期
    - time.*.gov
    - ntp.*.com

proxies — プロキシノードの定義

proxies はリスト形式で記述し、各項目が 1 つのノードを表します。以下は主要 4 プロトコルの完全な記述例です:

Shadowsocks

Shadowsocks ノードの書き方
proxies:
  - name: "🇭🇰 HK-SS"          # ノード名(カスタマイズ可)
    type: ss
    server: hk.example.com   # サーバードメインまたは IP
    port: 443
    cipher: aes-256-gcm       # 暗号化方式(一般的:aes-256-gcm / chacha20-ietf-poly1305)
    password: "your-password"
    udp: true                 # UDP 転送を有効化(ゲームに必須)

  # obfs プラグイン付き SS(難読化強化)
  - name: "🇯🇵 JP-SS-obfs"
    type: ss
    server: jp.example.com
    port: 80
    cipher: chacha20-ietf-poly1305
    password: "your-password"
    plugin: obfs
    plugin-opts:
      mode: http             # http または tls
      host: bing.com         # カモフラージュ用ドメイン

VMess

VMess ノードの書き方
  # VMess + WebSocket + TLS(最も一般的な組み合わせ)
  - name: "🇺🇸 US-VMess-WS"
    type: vmess
    server: us.example.com
    port: 443
    uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    alterId: 0                  # 新バージョンのプロトコルは常に 0
    cipher: auto
    network: ws                # トランスポート: ws / grpc / tcp / h2
    tls: true
    servername: us.example.com # SNI: server と同じか CDN ドメイン
    ws-opts:
      path: /vmess            # サーバー側のパスと一致させる
      headers:
        Host: us.example.com

  # VMess + gRPC(低遅延、高い透過性)
  - name: "🇸🇬 SG-VMess-gRPC"
    type: vmess
    server: sg.example.com
    port: 443
    uuid: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    alterId: 0
    cipher: auto
    network: grpc
    tls: true
    grpc-opts:
      grpc-service-name: "vmess-grpc"

Trojan

Trojan ノードの書き方
  - name: "🇯🇵 JP-Trojan"
    type: trojan
    server: jp.example.com
    port: 443
    password: "your-password"
    sni: jp.example.com     # TLS SNI(通常 server と同じ)
    udp: true
    skip-cert-verify: false # 本番環境では false のまま、証明書検証をスキップしない

  # Trojan + WebSocket(CDN 中継用)
  - name: "🇰🇷 KR-Trojan-WS"
    type: trojan
    server: kr.example.com
    port: 443
    password: "your-password"
    network: ws
    ws-opts:
      path: /trojan
      headers:
        Host: kr.example.com

Hysteria 2

QUIC ベースの新世代プロトコル。ロス率の高い環境に最適化されており、海外回線の高速化に適しています。

Hysteria 2 ノードの書き方
  - name: "⚡ US-Hysteria2"
    type: hysteria2
    server: us.example.com
    port: 443
    password: "your-password"
    sni: us.example.com
    skip-cert-verify: false
    # 実際のローカル帯域幅を Mbps で設定(アップ/ダウン)
    up: "50 Mbps"
    down: "200 Mbps"
up / down には、ノードの帯域ではなく手元の環境のアップロード/ダウンロード帯域を記述してください。正確な値を書くことで QUIC の性能を最大化でき、逆に大きすぎるとネットワークの混雑を招きます。

proxy-groups — プロキシグループの詳細解説

プロキシグループは Clash の最重要機能のひとつです。複数のノードを戦略ごとにまとめ、ルールが「個別のノード」ではなく「ノードのグループ」を指せるようにします。

select — 手動選択

最も基本的なグループ形式。ユーザーが画面上で使用したいノードを直接クリックして決定します。

select プロキシグループ
proxy-groups:
  - name: "🚀 プロキシ選択"
    type: select
    proxies:
      - "⚡ 自動選択"       # 他のプロキシグループを参照
      - "🛡️ フォールバック"
      - "🇭🇰 HK-SS"        # 単一ノードを参照(名前は proxies リストと一致する必要あり)
      - "🇺🇸 US-VMess-WS"
      - "🇯🇵 JP-Trojan"
      - DIRECT            # 特殊値: 直接接続、プロキシなし
      - REJECT            # 特殊値: 接続拒否(広告ブロック用)

url-test — 自動速度選択

定期的に全ノードの遅延をテストし、最も遅延の少ないノードへ自動で切り替えます。

url-test プロキシグループ
  - name: "⚡ 自動選択"
    type: url-test
    proxies:
      - "🇭🇰 HK-SS"
      - "🇺🇸 US-VMess-WS"
      - "🇯🇵 JP-Trojan"
      - "⚡ US-Hysteria2"
    url: 'http://www.gstatic.com/generate_204'  # 速度テスト対象 URL
    interval: 300                               # テスト間隔(秒)
    tolerance: 50                               # 切替許容値(ms): この差を超えた場合のみ切替
    lazy: true                                  # 遅延テスト: トラフィック発生時のみテスト

fallback — フェイルオーバー

proxies リストの順序に従って最初のノードを優先的に使用し、利用不可になった場合に自動で次のノードへ切り替え、接続の可用性を確保します。

fallback プロキシグループ
  - name: "🛡️ フォールバック"
    type: fallback
    proxies:
      - "🇭🇰 HK-SS"         # 優先ノード
      - "🇯🇵 JP-Trojan"     # バックアップ 1
      - "🇺🇸 US-VMess-WS"   # バックアップ 2
    url: 'http://www.gstatic.com/generate_204'
    interval: 60   # 確認間隔(秒): 障害の早期検出のため url-test より短く

load-balance — 負荷分散

異なる接続を複数のノードに分散させます。同時接続数が多いダウンロード等のシーンで、全体のパフォーマンスを向上させるのに適しています。

load-balance プロキシグループ
  - name: "⚖️ 負荷分散"
    type: load-balance
    strategy: consistent-hashing  # round-robin | consistent-hashing(同ドメイン → 同ノード)
    proxies:
      - "🇭🇰 HK-SS"
      - "🇯🇵 JP-Trojan"
      - "🇺🇸 US-VMess-WS"
    url: 'http://www.gstatic.com/generate_204'
    interval: 300

rules — ルール構成の詳細解説

ルールによって、各ネットワークリクエストの行き先(直接接続、特定のプロキシグループ、または拒否)が決まります。ルールは上から下への順に照合され、最初にマッチしたものが実行されます。

ルールタイプ一覧

ルールタイプ形式説明
DOMAIN DOMAIN,google.com,POLICY 完全一致するドメイン名
DOMAIN-SUFFIX DOMAIN-SUFFIX,google.com,POLICY ドメインおよびその全サブドメイン
DOMAIN-KEYWORD DOMAIN-KEYWORD,google,POLICY キーワードを含むドメイン名
IP-CIDR IP-CIDR,192.168.0.0/16,POLICY 対象 IP アドレス範囲
IP-CIDR6 IP-CIDR6,::1/128,POLICY IPv6 アドレス範囲
GEOIP GEOIP,CN,POLICY IP アドレスの場所(国)による判定
GEOSITE GEOSITE,CN,POLICY プリセットされたドメインデータベースによる判定 (Mihomo 拡張)
PROCESS-NAME PROCESS-NAME,steam.exe,POLICY リクエスト元のプロセス名による判定(デスクトップ版)
RULE-SET RULE-SET,rule-set-name,POLICY 外部ルールセットファイルの引用(大量のルール管理用)
MATCH MATCH,POLICY 最終ルール。上記にマッチしなかったすべてのリクエストを処理(必ず最後に記述)

ルールのマッチング優先順位

上から下へと順に照合され、マッチした時点で停止します。 精度の高いルール(DOMAIN 等)を上の方へ、範囲の広いルール(GEOIP 等)を下の方へ配置し、MATCH を必ず最終行に記述してください。
DOMAIN 完全一致ドメイン最高
DOMAIN-SUFFIX ドメインサフィックス
DOMAIN-KEYWORD ドメインキーワード
IP-CIDR / GEOIP IP アドレスルール
MATCH 最終マッチング(必須)必ず最後

よく使われるルールの記述例

config.yaml — ルール例
rules:
  # ===== 広告・悪意のあるドメインをブロック =====
  - DOMAIN-KEYWORD,adservice,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT
  - DOMAIN-SUFFIX,googlesyndication.com,REJECT

  # ===== 開発ツールをプロキシ経由(精確一致優先) =====
  - DOMAIN-SUFFIX,github.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,githubusercontent.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,npmjs.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,docker.io,🚀 プロキシ選択
  - DOMAIN-SUFFIX,docker.com,🚀 プロキシ選択

  # ===== プロセス名ルール(デスクトップのみ) =====
  - PROCESS-NAME,steam.exe,🚀 プロキシ選択
  - PROCESS-NAME,git,🚀 プロキシ選択

  # ===== プライベート IP: 直接接続 =====
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT

  # ===== 中国本土 IP: 直接接続 =====
  - GEOIP,CN,DIRECT

  # ===== キャッチオール: 残りのトラフィックをプロキシ経由 =====
  - MATCH,🚀 プロキシ選択
ルールのリストが長くなるほど Clash の処理負荷が増えます。数百〜数千のルールがある場合は RULE-SET を使って外部ファイル化し、config.yaml をシンプルに保つのが推奨されます。

config.yaml の完全なサンプル

以下は、3 種類のプロトコル、4 種類のグループ、完全なルール分流を含む、詳細な注釈付きの構成ファイル例です。必要に応じて書き換えて使用してください:

完全な config.yaml(注釈付き)
# ============================================================
#   Clash config.yaml — 完全な設定例
# ============================================================

# --- 基本設定 ---
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
secret: ""

# --- DNS 設定 ---
dns:
  enable: true
  listen: 0.0.0.0:53
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - '*.lan'
    - '*.local'
    - +.msftncsi.com
    - +.stun.*.*
    - time.*.com
    - ntp.*.com
  nameserver:
    - 1.1.1.1
    - 8.8.8.8
  fallback:
    - tls://8.8.8.8:853
    - tls://1.1.1.1:853
  fallback-filter:
    geoip: true
    geoip-code: CN

# --- プロキシノード ---
proxies:
  - name: "🇭🇰 HK-SS"
    type: ss
    server: hk.example.com
    port: 443
    cipher: aes-256-gcm
    password: "your-ss-password"
    udp: true

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

  - name: "🇯🇵 JP-Trojan"
    type: trojan
    server: jp.example.com
    port: 443
    password: "your-trojan-password"
    sni: jp.example.com
    udp: true

# --- プロキシグループ ---
proxy-groups:
  - name: "🚀 プロキシ選択"
    type: select
    proxies:
      - "⚡ 自動選択"
      - "🛡️ フォールバック"
      - "🇭🇰 HK-SS"
      - "🇺🇸 US-VMess"
      - "🇯🇵 JP-Trojan"
      - DIRECT

  - name: "⚡ 自動選択"
    type: url-test
    proxies:
      - "🇭🇰 HK-SS"
      - "🇺🇸 US-VMess"
      - "🇯🇵 JP-Trojan"
    url: 'http://www.gstatic.com/generate_204'
    interval: 300
    tolerance: 50

  - name: "🛡️ フォールバック"
    type: fallback
    proxies:
      - "🇭🇰 HK-SS"
      - "🇯🇵 JP-Trojan"
      - "🇺🇸 US-VMess"
    url: 'http://www.gstatic.com/generate_204'
    interval: 60

  - name: "🎬 ストリーミング"
    type: select
    proxies:
      - "🇺🇸 US-VMess"
      - "🇯🇵 JP-Trojan"
      - "🚀 プロキシ選択"

# --- ルール ---
rules:
  # 広告ブロック
  - DOMAIN-KEYWORD,adservice,REJECT
  - DOMAIN-SUFFIX,doubleclick.net,REJECT

  # ストリーミング
  - DOMAIN-SUFFIX,netflix.com,🎬 ストリーミング
  - DOMAIN-SUFFIX,nflxso.net,🎬 ストリーミング
  - DOMAIN-SUFFIX,disneyplus.com,🎬 ストリーミング
  - DOMAIN-SUFFIX,spotify.com,🎬 ストリーミング

  # 開発ツール
  - DOMAIN-SUFFIX,github.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,githubusercontent.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,npmjs.com,🚀 プロキシ選択
  - DOMAIN-SUFFIX,docker.io,🚀 プロキシ選択

  # プライベート IP: 直接接続
  - IP-CIDR,127.0.0.0/8,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT
  - IP-CIDR,10.0.0.0/8,DIRECT

  # 中国本土 IP: 直接接続
  - GEOIP,CN,DIRECT

  # キャッチオール: 残りをプロキシ経由
  - MATCH,🚀 プロキシ選択

設定が終わりましたか? クライアントをダウンロードして使い始めましょう

構成ファイルを Clash クライアントへインポートするか、購読機能を使ってプロバイダー提供の管理設定を直接読み込んでください。