1. config.yaml とは?
config.yaml は Clash カーネルの中核となる設定ファイルです。YAML 形式で記述され、proxy ノード、proxy-groups、rule 分流、DNS など、実行に必要なすべてのパラメータを定義します。ClashX を macOS で起動すると、通常 ~/.config/clash/config.yaml にあるこのファイルを自動で読み込みます。
config.yaml を理解すると、通信の流れを細かく制御できます。どの通信を proxy 経由にするか、どれを直結(DIRECT)にするか、どれを遮断するかを自分で決められます。
- 柔軟性が高い: GUI より高度な設定が可能です
- 移植しやすい: 1つの設定を複数デバイスで使い回せます
- バージョン管理しやすい: Git で変更履歴を追跡できます
2. YAML の基本文法
YAML(YAML Ain't Markup Language)は人間が読みやすいデータ記述形式です。config.yaml を書く前に、次の基本ルールを押さえておきましょう。
- インデント: Tab は使わずスペースを使用(通常 2 スペース)
- キーと値:
key: value(コロンの後にスペース必須) - リスト:
-で配列要素を表します - コメント:
#で始めます
# 基本設定の例
port: 7890 # HTTP proxy ポート
socks-port: 7891 # SOCKS5 proxy ポート
allow-lan: false # LAN 接続を許可するか
mode: rule # 動作モード: rule/global/direct
log-level: info # ログレベル: silent/error/warning/info/debug
external-controller: 127.0.0.1:9090 # RESTful API アドレス
注意: YAML はインデントに非常に敏感です。1箇所でも崩れると、設定全体の解析に失敗します。VS Code など、YAML シンタックスハイライト対応エディタの利用をおすすめします。
3. proxies(proxy ノード)設定
proxies は、利用するすべての proxy サーバーを定義するセクションです。Clash は Shadowsocks(SS)、VMess、Trojan など複数プロトコルに対応しています。各ノードには名前、タイプ、サーバーアドレス、ポートなどが必要です。
Shadowsocks (SS) ノード
proxies:
- name: "HK-Node-SS"
type: ss
server: hk.example.com
port: 8388
cipher: aes-256-gcm
password: "your-password-here"
udp: true
VMess ノード
- name: "JP-Node-VMess"
type: vmess
server: jp.example.com
port: 443
uuid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
alterId: 0
cipher: auto
tls: true
network: ws
ws-opts:
path: /path
headers:
Host: jp.example.com
Trojan ノード
- name: "US-Node-Trojan"
type: trojan
server: us.example.com
port: 443
password: "your-trojan-password"
sni: us.example.com
skip-cert-verify: false
udp: true
4. proxy-groups(戦略グループ)設定
proxy-groups は Clash の重要機能です。複数ノードを1つにまとめ、選択戦略を定義できます。よく使うタイプは次の通りです。
- select: 手動選択。細かく制御したい場合に最適です
- url-test: 自動遅延テスト。定期測定して最速ノードを選びます
- fallback: フェイルオーバー。順番に試し、障害時に自動切替します
- load-balance: 負荷分散。通信を複数ノードに分配します
proxy-groups:
- name: "🚀 Proxy Select"
type: select
proxies:
- "♻️ Auto Best"
- "HK-Node-SS"
- "JP-Node-VMess"
- "US-Node-Trojan"
- DIRECT
- name: "♻️ Auto Best"
type: url-test
proxies:
- "HK-Node-SS"
- "JP-Node-VMess"
- "US-Node-Trojan"
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50
- name: "🛡️ Failover"
type: fallback
proxies:
- "HK-Node-SS"
- "JP-Node-VMess"
- "US-Node-Trojan"
url: http://www.gstatic.com/generate_204
interval: 300
- name: "⚖️ Load Balance"
type: load-balance
proxies:
- "HK-Node-SS"
- "JP-Node-VMess"
strategy: consistent-hashing
url: http://www.gstatic.com/generate_204
interval: 300
5. rules(分流ルール)
rules は各通信リクエストの行き先を決めます。Clash は上から順にルールを照合し、ヒットした時点で適用します。代表的なルールタイプは次の通りです。
- DOMAIN-SUFFIX:
google.comのようなドメイン末尾で一致 - DOMAIN-KEYWORD: ドメインに含まれるキーワードで一致
- IP-CIDR: 宛先 IP 範囲で一致
- GEOIP: IP の国・地域情報で一致
- MATCH: 未一致通信を受ける最終ルール
rules:
# 直結ルール
- DOMAIN-SUFFIX,cn,DIRECT
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-KEYWORD,baidu,DIRECT
# proxy ルール
- DOMAIN-SUFFIX,google.com,🚀 Proxy Select
- DOMAIN-SUFFIX,youtube.com,🚀 Proxy Select
- DOMAIN-SUFFIX,github.com,🚀 Proxy Select
- DOMAIN-KEYWORD,telegram,🚀 Proxy Select
# IP ルール
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- GEOIP,CN,DIRECT
# 最終ルール(必ず最後)
- MATCH,🚀 Proxy Select
ヒント: ルール順は非常に重要です。具体的なルールを前に置き、MATCH は必ず最後に置いてください。ルール数が増えるほど照合コストは上がりますが、Clash は効率的なアルゴリズムを使っているため、通常は数千件でも実用上問題ありません。
6. DNS 設定
DNS 設定は速度と安全性に直接影響します。Clash では nameserver、fallback、fake-ip モードなどを細かく設定できます。
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip # redir-host または fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "*.local"
- "localhost.ptlogin2.qq.com"
nameserver:
- https://doh.pub/dns-query # Tencent DoH サーバー
- https://dns.alidns.com/dns-query # Alibaba DoH サーバー
- 114.114.114.114
fallback:
- https://dns.google/dns-query # Google DoH サーバー
- https://cloudflare-dns.com/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
- fake-ip モード: 疑似 IP を返し、DNS leak を抑えやすく高速です。多くの環境で推奨です
- redir-host モード: 実 IP を返すため互換性が高く、実 IP が必要なケースに向いています
- fallback: nameserver の結果が汚染されている場合に再解決を行います
7. よくある質問(FAQ)
Q1: 保存後に設定が反映されません
YAML 形式(Tab 不使用、コロン後スペース)を確認し、ClashX メニューバーで「Config」→「Reload Config」を実行してください。必要であればオンラインの YAML バリデータで文法チェックしてください。
Q2: サブスクリプションとカスタム rule を併用できますか?
proxy-providers でサブスクリプションノードを読み込み、ローカル設定で独自の proxy-groups と rules を定義する構成がおすすめです。両者は問題なく共存できます。
Q3: ルールが多いとパフォーマンスに影響しますか?
通常、数千ルール程度で大きな影響はありません。重複 rule を避け、ヒット頻度が高い rule を上位に置くと効率的です。
Q4: fake-ip と redir-host はどちらを選ぶべきですか?
基本は fake-ip 推奨です。高速で DNS leak 対策にも有効です。特定アプリで互換性問題が出る場合のみ redir-host に切り替えてください。必要に応じて fake-ip-filter を使います。
Q5: 現在使っている config.yaml の場所はどう確認しますか?
ClashX メニューバーから「Config」→「Open Config Folder」を開くと、現在の config.yaml の場所を確認できます。