DOCS · 設定・ルールリファレンス

config.yaml
正しく理解する

クライアントの基本操作を理解した上級者向け:Clash / Mihomoの設定構造、プロキシプロトコル、プロキシグループ、ルール構文、DNS、TUNをまとめました。参照やカスタマイズに便利です。

01 · OVERVIEW

このドキュメントでできること

使い方ガイドは「インストール・接続方法」を、ドキュメントは「各設定項目の意味と変更方法」を担当します。両方を併用すると効率的です。

対象読者

サブスクリプションを導入済みで、ルールやDNSを自分でカスタマイズしたい、TUNを有効にしたい、またはプロキシグループが機能しない場合の調査をしたいユーザー向けです。

設定ファイルの場所

GUIクライアントでは通常「設定 / Profiles」から編集できます。CLIコアはデフォルトで作業ディレクトリのconfig.yamlを読み込みます。

コアについて

本ドキュメントは主にmihomo(Clash Meta)の構文に基づいており、一般的なClashの設定形式とも互換性があります。

編集前にバックアップを

YAMLを手動で編集した後は、インデントとコロン後のスペースを確認してください。構文エラーがあるとコアが起動できません。

サブスクリプションのインポートに不慣れな方は、まず使い方ガイドをご覧の上、本ページの項目説明に戻ってきてください。
02 · CONFIG

設定構造の概要

完全な設定は通常「基本ポート → プロキシ一覧 → プロキシグループ → ルール → DNS」の各ブロックで構成されます。以下は最小限の読みやすい骨格です:

# config.yaml — minimal skeleton port: 7890 socks-port: 7891 allow-lan: false mode: rule log-level: info external-controller: 127.0.0.1:9090 proxies: - name: "サンプルノード" type: ss server: example.com port: 8388 cipher: aes-128-gcm password: "password" proxy-groups: - name: "PROXY" type: select proxies: - "サンプルノード" - DIRECT rules: - DOMAIN-SUFFIX,jp,DIRECT - MATCH,PROXY

よく使う基本フィールド

フィールド説明
portnumberHTTPプロキシポート。ブラウザ/システムプロキシでよく使用
socks-portnumberSOCKS5ポート
mixed-portnumberHTTP/SOCKS混合ポート(いずれか一方でOK)
allow-lanboolLAN内のデバイスからこのプロキシへの接続を許可するか
modestringrule / global / direct
log-levelstringsilent / error / warning / info / debug
ipv6boolIPv6を有効にするか
allow-lan: trueを有効にする場合は、外部コントローラーを保護するためにsecretも併せて設定してください。設定しない場合、LAN内の誰でも設定を変更できてしまいます。
03 · PROXIES

プロキシノード(proxies)

各ノードはアウトバウンドチャネルです。サブスクリプションをインポートすると通常自動生成されます。手動で追加する場合はnameが設定内で一意になるようにしてください。

ss ssr vmess vless trojan hysteria2 tuic wireguard http socks5

共通フィールド

フィールド説明
namestring表示名。プロキシグループやルールから参照されます
typestringプロトコルの種類。例:ssvmess
serverstringサーバーのドメイン名またはIP
portnumberサーバーポート
udpboolUDP転送を許可するか(デフォルトはプロトコルによる)

Shadowsocksの例

- name: "HK-SS" type: ss server: hk.example.com port: 8388 cipher: aes-128-gcm password: "your-password" udp: true
プロトコルごとに専用のフィールドがあります(例:VMessのuuidalterId、Trojanのpasswordsni)。プロバイダーが提供する設定に従い、無断で変更しないでください。
04 · PROXY-GROUPS

プロキシグループ(proxy-groups)

プロキシグループは複数のノードをまとめ、「どう選ぶか」を決めます。ルールでは通常、個別のノードではなくグループ名を参照します。

select

手動選択。「香港/日本/アメリカ」のような地域別グループに向いています。

url-test

遅延に基づいて自動的に最速ノードを選択します。intervaltoleranceを設定できます。

fallback

リストの順に試行し、現在のノードが失敗すると次のノードに切り替えます。

load-balance

利用可能なノード間で負荷分散を行い、複数経路への分散に向いています。

url-testの例

- name: "自動選択" type: url-test proxies: - "HK-01" - "JP-01" - "US-01" url: http://www.gstatic.com/generate_204 interval: 300 tolerance: 50
05 · RULES

ルール構文(rules)

ルールは上から下へ照合され、最初にマッチしたところで停止します。取り漏れを防ぐため、通常は最後にMATCHで受け止めます。

よく使うマッチタイプ

説明
DOMAINDOMAIN,api.example.com,PROXY完全一致ドメイン
DOMAIN-SUFFIXDOMAIN-SUFFIX,google.com,PROXYサフィックス一致
DOMAIN-KEYWORDDOMAIN-KEYWORD,ads,REJECTキーワード一致
IP-CIDRIP-CIDR,192.168.0.0/16,DIRECTIPv4範囲
GEOIPGEOIP,JP,DIRECT国/地域別
MATCHMATCH,PROXY最終フォールバックルール

記述例

rules: - DOMAIN-SUFFIX,local,DIRECT - IP-CIDR,127.0.0.0/8,DIRECT - DOMAIN-KEYWORD,ad,REJECT - GEOIP,JP,DIRECT - MATCH,PROXY
カスタムルールはできるだけ上に置いてください。GEOIP,JPや広範なルールの後に置くと、一致しなくなる可能性があります。
06 · DNS

DNS設定

DNSはドメイン名の解決方法を決定します。適切に設定することでDNS汚染を減らし、分流ルールともより正確に連携できます。「ノードには接続できるがサイトが開けない」場合のトラブルシューティングでも重要なポイントです。

dns: enable: true listen: 0.0.0.0:53 enhanced-mode: fake-ip nameserver: - https://cloudflare-dns.com/dns-query - https://dns.google/dns-query fallback: - tls://1.1.1.1 - tls://8.8.8.8 fallback-filter: geoip: true geoip-code: JP

モードの説明

  • redir-host:実際のIPを解決します。互換性が高く、実際のアドレスを必要とする一部のアプリに向いています。
  • fake-ip:仮想IPを返します。解決が速く、ルールによる分流と組み合わせるのが一般的です。一部のゲームやLANアプリではfake-ip-filterへの追加が必要な場合があります。
07 · TUN

TUNモード

システムプロキシは「システムプロキシ設定に従う」アプリのみをカバーします。TUNは仮想ネットワークカードを通じてトラフィックを引き受けるため、より多くのアプリ(プロキシ非対応のものも含む)をルールに従わせることができます。

tun: enable: true stack: system # system / gvisor / mixed dns-hijack: - any:53 auto-route: true auto-detect-interface: true
  • Windows:TUNモードを有効にするには通常、管理者権限でクライアントを起動する必要があります。
  • macOS:初回有効化時にネットワーク拡張のインストールを求められるので、システム設定で許可してください。
  • システムプロキシとの関係:通常はどちらか一方だけを使用してください。両方同時に有効にすると、二重プロキシや不具合の原因になることがあります。
サーバーやGUIのない環境では、CLIコア+環境変数プロキシを優先してください。デスクトップで「システム全体を引き受ける」必要がある場合はTUNを有効にします。
08 · API

外部コントローラーAPI

external-controllerでREST APIを公開すると、ダッシュボードやスクリプトからノードの切り替え、接続の確認、設定のホットリロードが可能になります。

フィールド説明
external-controllerstringリスニングアドレス。例:127.0.0.1:9090
secretstringアクセスシークレット。Authorization: Bearer <secret>ヘッダーで送信
external-uistringオプション。外部ダッシュボードの静的リソースディレクトリ

よく使うエンドポイント(例示)

# 現在の設定バージョン/状態を確認 GET http://127.0.0.1:9090/version # プロキシグループの選択ノードを切り替え PUT http://127.0.0.1:9090/proxies/{group} Body { "name": "HK-01" } # 設定を再読み込み PUT http://127.0.0.1:9090/configs?force=true
本番環境やインターネット公開環境では必ずsecretを設定し、できるだけ127.0.0.1のみをリスニングしてください。コントローラーポートを公開インターネットに晒さないようにしましょう。

インストールが終わったら、設定を整えよう

クライアントをダウンロードし、使い方ガイドに沿って接続したら、このドキュメントに戻ってルールやDNSをカスタマイズすると、スムーズに進められます。