رفتن به محتوای اصلی
FA

خانه / وبلاگ / مبانی پیکربندی

ساختار YAML پیکربندی Clash — هرکدام از هشت فیلد سطح بالا چه کار می‌کنند

مبانی پیکربندی2026-08-021413 واژه3 دقیقه مطالعه
ساختار YAML پیکربندی Clash — هرکدام از هشت فیلد سطح بالا چه کار می‌کنند

آنچه لینک اشتراک برمی‌گرداند یک فایل YAML است. بفهمیدش تا بتوانید عوضش کنید.

این نوشته فیلدهای سطح بالا را به ترتیب طی می‌کند و برای هرکدام قطعه‌ای قابل چسباندن می‌دهد.

یک پیکربندی کمینهٔ کارآمد

اول کل ماجرا، بعد تکه‌تکه:

mixed-port: 7897
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver: [223.5.5.5, 119.29.29.29]
  fallback: [https://1.1.1.1/dns-query]

proxies:
  - name: "HK-01"
    type: trojan
    server: hk01.example.com
    port: 443
    password: "your-password"
    udp: true

proxy-groups:
  - name: "PROXY"
    type: select
    proxies: ["AUTO", "HK-01"]
  - name: "AUTO"
    type: url-test
    proxies: ["HK-01"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

rules:
  - DOMAIN-SUFFIX,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

این پیکربندی کار می‌کند. حالا هر فیلد.

مسئولیت‌ها میان فیلدهای سطح بالا چطور تقسیم شده1تنظیمات پایهپورت‌ها، حالت، لاگ، کلید شبکهٔ محلی — اینکه کلاینت چطور گوش می‌دهد2dnsنام‌ها چطور حل می‌شوند — سرانجام به کدام IP می‌روید3proxiesچه گره‌هایی هست — فهرست خروجی‌ها4proxy-groupsگره چطور انتخاب می‌شود — لایهٔ سیاست5rulesکدام ترافیک کدام سیاست را برمی‌دارد — لایهٔ تصمیم6rule-providersمجموعه‌قواعد راه دور — قواعدی از بیرون
از بالا به پایین: اول کار می‌کند، بعد حل می‌کند، بعد خروجی دارد، بعد سیاست، بعد قواعد

۱. تنظیمات پایه

mixed-port: 7897          # پورت مشترک HTTP + SOCKS5 (پیشنهادی)
# port: 7890              # پورت جداگانهٔ HTTP، به‌ندرت لازم
# socks-port: 7891        # پورت جداگانهٔ SOCKS5، به‌ندرت لازم
redir-port: 7892          # پروکسی شفاف (Linux/macOS)
tproxy-port: 7893         # TProxy (Linux)
allow-lan: false          # آیا دستگاه‌های شبکهٔ محلی می‌توانند وصل شوند
bind-address: "*"         # نشانی گوش دادن وقتی allow-lan روشن است
mode: rule                # rule / global / direct
log-level: info           # silent / error / warning / info / debug
ipv6: false               # فعال کردن IPv6
unified-delay: true       # محاسبهٔ یکدست تأخیر، نزدیک‌تر به واقعیت
tcp-concurrent: true      # دست‌دادن هم‌زمان، برای دامنه‌های چند-IP سریع‌تر
external-controller: 127.0.0.1:9090
secret: ""                # رمز API کنترل

۲. dns

بخش DNS تعیین می‌کند «این نام به چه IP تبدیل می‌شود»، و این مستقیماً روی دقت مسیریابی و باز شدن سرویس‌های پخش اثر می‌گذارد.

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false
  enhanced-mode: fake-ip           # fake-ip یا redir-host
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:                  # این نام‌ها از fake-ip رد می‌شوند
    - "*.lan"
    - "*.local"
    - "+.pool.ntp.org"
    - "localhost.ptlogin2.qq.com"
  default-nameserver: [223.5.5.5]  # برای حل کردن نام‌های DoH پایین
  nameserver:                      # DNS اصلی
    - 223.5.5.5
    - https://doh.pub/dns-query
  fallback:                        # DNS خارجی
    - https://1.1.1.1/dns-query
    - tls://8.8.4.4:853
  fallback-filter:
    geoip: true
    geoip-code: CN

دو مقدار enhanced-mode رفتار خیلی متفاوتی دارند؛ مقاله‌ای کامل دربارهٔ آن هست: پیکربندی DNS و اینکه fake-ip چطور کار می‌کند.

۳. proxies

فهرست گره‌ها. فیلدها بین پروتکل‌ها فرق دارند؛ این‌ها رایج‌ترین‌ها هستند:

proxies:
  # Trojan
  - name: "HK-Trojan"
    type: trojan
    server: hk.example.com
    port: 443
    password: "pwd"
    sni: hk.example.com
    udp: true

  # VMess
  - name: "JP-VMess"
    type: vmess
    server: jp.example.com
    port: 443
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: /ws
      headers: { Host: jp.example.com }

  # Shadowsocks
  - name: "SG-SS"
    type: ss
    server: sg.example.com
    port: 8388
    cipher: aes-256-gcm
    password: "pwd"
    udp: true

  # Hysteria2 (مورد پشتیبانی Mihomo)
  - name: "US-HY2"
    type: hysteria2
    server: us.example.com
    port: 443
    password: "pwd"
    sni: us.example.com

۴. proxy-groups

گروه‌های سیاست تعیین می‌کنند «این دستهٔ ترافیک کدام گره را برمی‌دارد». تفاوت پنج نوع در انواع proxy-groups آمده؛ اینجا ساختاری که جواب می‌دهد:

proxy-groups:
  - name: "🚀 انتخاب"
    type: select
    proxies: ["♻️ خودکار", "🇭🇰 هنگ‌کنگ", "🇯🇵 ژاپن", "DIRECT"]

  - name: "♻️ خودکار"
    type: url-test
    include-all: true            # در Mihomo: همهٔ گره‌ها را خودکار بیاور
    filter: "HK|Hong"            # فقط آنچه تطبیق می‌خورد
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🎬 پخش آنلاین"
    type: select
    proxies: ["🇭🇰 هنگ‌کنگ", "🇸🇬 سنگاپور", "🚀 انتخاب"]

  - name: "🐟 باقی‌ماندهٔ ترافیک"
    type: select
    proxies: ["🚀 انتخاب", "DIRECT"]

ترکیب include-all و filter قابلیت واقعاً مفید Mihomo است: بدون نوشتن دستی نام گره‌ها، فقط یک عبارت باقاعده که جمعشان می‌کند. نحوش در عبارت باقاعده برای نام‌گذاری و گروه‌بندی گره‌ها.

۵. rules

از بالا به پایین تطبیق داده می‌شود؛ نخستین قاعده‌ای که بخورد برنده است.

rules:
  # شبکهٔ محلی مستقیم (باید اول بیاید)
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve

  # قواعد دامنه‌ای مشخص
  - DOMAIN-SUFFIX,openai.com,🚀 انتخاب
  - DOMAIN-SUFFIX,netflix.com,🎬 پخش آنلاین
  - DOMAIN-KEYWORD,google,🚀 انتخاب

  # مجموعه‌قواعد
  - RULE-SET,cn-domain,DIRECT
  - RULE-SET,proxy-domain,🚀 انتخاب

  # پوشش نهایی جغرافیایی
  - GEOIP,CN,DIRECT
  - MATCH,🐟 باقی‌ماندهٔ ترافیک

جدول کامل انواع قواعد در مرجع انواع قواعد هست.

۶. rule-providers

فهرست قواعد را در فایل‌های بیرونی نگه دارید که طبق زمان‌بندی تازه می‌شوند:

rule-providers:
  cn-domain:
    type: http
    behavior: domain
    format: text
    url: "https://example.com/rules/cn.txt"
    path: ./ruleset/cn-domain.txt
    interval: 86400

  private-ip:
    type: http
    behavior: ipcidr
    url: "https://example.com/rules/private.txt"
    path: ./ruleset/private.txt
    interval: 86400

فیلد behavior سه مقدار دارد: domain (فهرست نام‌ها)، ipcidr (بازه‌های IP) و classical (نحو کامل قواعد). اشتباه گذاشتنش باعث می‌شود قواعد بی‌صدا هیچ کاری نکنند و خطایی هم ندهند — دام کلاسیکی است. راهنمای کامل rule-providers را ببینید.

۷. proxy-providers

گره‌ها هم می‌توانند از بیرون بیایند:

proxy-providers:
  main:
    type: http
    url: "لینک اشتراک شما"
    interval: 3600
    path: ./providers/main.yaml
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300

بعد در یک گروه با use: [main] به آن ارجاع بدهید. این شکل درست برای ادغام چند اشتراک است؛ مدیریت و ادغام چند پروفایل را ببینید.

۸. tun

پیکربندی TUN (در Clash Verge رابط گرافیکی دارد، ولی دانستن آنچه زیرش هست کمک می‌کند):

tun:
  enable: true
  stack: mixed                 # gvisor / system / mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack: ["any:53"]
  strict-route: false
  mtu: 1500

سازوکارش در درون TUN: کارت مجازی، جدول مسیریابی و ربودن DNS هست.

سه اشتباه YAML که همه مرتکب می‌شوند

هنگام نوشتن YAML به چه چیزی نگاه کنیمتورفتگی فقط با فاصله، هرگز با تب — یک تب مستقیماً باعث شکست تجزیه می‌شود
شمارهٔ خط در پیام خطا معمولاً دقیق است — مستقیم همان‌جا بروید

۱. با فاصله تورفتگی بدهید نه تب. بیشتر خطاهای تجزیه همین است. ۲. بعد از دونقطه یک فاصله. port:443 غلط است؛ port: 443 درست. ۳. نویسه‌های ویژه را در گیومه بگذارید. رمزی که @ یا # یا : دارد باید در گیومه باشد: password: "p@ss#123".

مرجع کامل خطاها در عیب‌یابی خطاهای YAML هست.

راه درست تغییر دادن پیکربندی

ویرایش فایلی که اشتراک دانلود کرده یعنی به‌روزرسانی خودکار بعدی بازنویسی‌اش می‌کند.

رویکرد درست، همان «Global Extended Config / Merge» در Clash Verge است که بدون دست زدن به فایل اصلی چیز اضافه می‌کند:

# پیکربندی توسعه‌یافتهٔ سراسری
prepend-rules:
  - DOMAIN-SUFFIX,mycompany.com,DIRECT

append-rules:
  - DOMAIN-SUFFIX,example.net,🚀 انتخاب

prepend-proxy-groups:
  - name: "گروه من"
    type: select
    proxies: ["DIRECT", "🚀 انتخاب"]

توسعهٔ اشتراک با Merge را ببینید.

خلاصه

هشت فیلد سطح بالا با مسئولیت‌های تمیز: تنظیمات پایه گوش دادن را مدیریت می‌کند، dns حل نام را، proxies خروجی‌ها را، proxy-groups سیاست را، rules تصمیم‌ها را، آن دو provider منابع بیرونی را، و tun رهگیری در لایهٔ شبکه را.

پیش از عوض کردن پیکربندی مشخص کنید کدام لایه را عوض می‌کنید — بعد از Merge استفاده کنید نه از ویرایش مستقیم فایل اشتراک.


مستندات مرتبط

توسعهٔ اشتراک با Merge، تا ویرایش‌هایتان از به‌روزرسانی جان به در ببرند
مبانی پیکربندی توسعهٔ اشتراک با Merge، تا ویرایش‌هایتان از به‌روزرسانی جان به در ببرند

ویرایش پیکربندی دانلودشده در به‌روزرسانی بعدی از بین می‌رود. پیکربندی توسعه‌یافتهٔ Clash Verge چطور کار می‌کند: نحو prepend/append/override، ترتیب ادغام، و مجموعه‌ای از قطعه‌های کاربردی.

2026-07-091299 واژه3 دقیقه مطالعه