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

خانه / وبلاگ / قواعد و مسیریابی

مجموعه‌قواعد راه دور با rule-providers — behavior و format و راهبرد به‌روزرسانی

قواعد و مسیریابی2026-07-211355 واژه3 دقیقه مطالعه
مجموعه‌قواعد راه دور با rule-providers — behavior و format و راهبرد به‌روزرسانی

نوشتن دستی صدها قاعدهٔ DOMAIN-SUFFIX عملی نیست و پابه‌پای تغییر سایت‌ها هم نمی‌آید. rule-providers امکان ارجاع به فهرست‌هایی را می‌دهد که بیرون نگهداری می‌شوند و طبق زمان‌بندی تازه می‌شوند.

ساختار پایه

دو گام: provider را تعریف کنید، بعد در rules به آن ارجاع بدهید.

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

rules:
  - RULE-SET,cn-domain,DIRECT
  - MATCH,PROXY

فیلد به فیلد

فیلدمقادیرمعنی
typehttp / file / inlineراه دور، فایل محلی، یا نوشته‌شده در جا
behaviordomain / ipcidr / classicalباید با محتوای فایل بخواند
formattext / yaml / mrsقالب فایل
urlنشانی فایل قواعدوقتی type برابر http است الزامی
pathمسیر کش محلینسبت به پوشهٔ پیکربندی
intervalثانیهبازهٔ به‌روزرسانی؛ ۸۶۴۰۰ یعنی یک روز
proxyنام سیاستفایل از کدام مسیر دانلود شود

behavior: این سه نوع جای هم نمی‌نشینند

بیشترین خرابی همین‌جا رخ می‌دهد — behavior نادرست هیچ خطایی نمی‌دهد، قواعد فقط بی‌صدا کاری نمی‌کنند.

هر behavior چه محتوایی از فایل انتظار داردdomainفهرست ساهر خط یک دامنه یا +.دامنهبدون IP و بدون نوع قاعدهرایج‌ترینipcidrفهرست ساهر خط یک CIDRبدون دامنهclassicalنحو کاملهر خط «نوع,مقدار» استهر نوعی را می‌شود قاطی کردمنعطف‌ترین ولی کندترین
وقتی فایل قواعدی گرفتید، پیش از انتخاب behavior بازش کنید و محتوایش را ببینید

domain

فایل چنین است:

google.com
+.youtube.com
www.github.com

پیشوند +. معادل DOMAIN-SUFFIX است (همهٔ زیردامنه‌ها را می‌گیرد)؛ بدون آن تطبیق دقیق است.

ipcidr

1.0.1.0/24
8.8.8.8/32
2001:4860::/32

classical

DOMAIN-SUFFIX,google.com
DOMAIN-KEYWORD,youtube
IP-CIDR,8.8.8.8/32,no-resolve
PROCESS-NAME,Telegram.exe

توجه کنید: فایل classical هیچ نام سیاستی ندارد. سیاست از همان خط RULE-SET می‌آید که به آن ارجاع می‌دهد.

format: قالب‌های text و yaml و mrs

text: متن ساده، هر خط یک مدخل، # شروع توضیح. رایج‌ترین.

yaml:

payload:
  - google.com
  - "+.youtube.com"

mrs: قالبی دودویی مخصوص Mihomo، کوچک و سریع در بارگذاری. فقط domain و ipcidr را پشتیبانی می‌کند نه classical.

هزینهٔ بارگذاری سه قالب (نسبی، روی یک فهرست ۱۰۰٬۰۰۰ دامنه‌ای)mrs دودوییسریع‌ترین، کمترین حافظهtext سادهزمان تجزیهٔ متوسطyamlبه تجزیهٔ کامل YAML نیاز داردبرای مجموعه‌های کوچک تفاوت ناچیز است؛ بالای ده هزار مدخل mrs آشکارا جلو می‌افتد

برای مجموعه‌های خیلی بزرگ (ده‌ها هزار مدخل به بالا) اگر منبع نسخهٔ mrs می‌دهد همان را بردارید.

interval: هر چند وقت به‌روز کنیم

نوع مجموعه قاعدهبازهٔ پیشنهادی
فهرست دامنه / IP منطقه‌ای۸۶۴۰۰ (یک روز)
فهرست‌های مسدودسازی تبلیغات۸۶۴۰۰
فهرست‌های باز کردن پخش آنلاین۴۳۲۰۰ (نیم روز)
فهرست‌های کوچکی که خودتان نگه می‌دارید۳۶۰۰ یا بیشتر

خیلی کوتاه گذاشتنش به جایی نمی‌رسد — این فهرست‌ها روزی چند بار عوض نمی‌شوند و شما فقط به میزبانشان بار می‌آورید.

یک پیکربندی کاری کامل

ترکیبی از مجموعه‌قواعد که نیازهای معمول را پوشش می‌دهد:

rule-providers:
  # مسدودسازی تبلیغات
  reject:
    type: http
    behavior: domain
    format: text
    url: "https://example.com/reject.txt"
    path: ./ruleset/reject.txt
    interval: 86400
    proxy: DIRECT

  # دامنه‌هایی که باید مستقیم بروند
  direct:
    type: http
    behavior: domain
    format: text
    url: "https://example.com/direct.txt"
    path: ./ruleset/direct.txt
    interval: 86400
    proxy: DIRECT

  # دامنه‌هایی که پروکسی می‌خواهند
  proxy:
    type: http
    behavior: domain
    format: text
    url: "https://example.com/proxy.txt"
    path: ./ruleset/proxy.txt
    interval: 86400
    proxy: DIRECT

  # بازه‌های IP درون‌منطقه‌ای
  cncidr:
    type: http
    behavior: ipcidr
    format: text
    url: "https://example.com/cncidr.txt"
    path: ./ruleset/cncidr.txt
    interval: 86400
    proxy: DIRECT

  # loopback و بازه‌های خصوصی
  lancidr:
    type: http
    behavior: ipcidr
    format: text
    url: "https://example.com/lancidr.txt"
    path: ./ruleset/lancidr.txt
    interval: 86400
    proxy: DIRECT

rules:
  - RULE-SET,lancidr,DIRECT,no-resolve
  - RULE-SET,reject,REJECT
  - RULE-SET,proxy,🚀 انتخاب
  - RULE-SET,direct,DIRECT
  - RULE-SET,cncidr,DIRECT,no-resolve
  - GEOIP,CN,DIRECT
  - MATCH,🐟 باقی‌ماندهٔ ترافیک

حواستان به ترتیب باشد: خصوصی ← مسدودسازی ← پروکسی ← مستقیم ← بازه‌های IP ← پوشش جغرافیایی ← MATCH.

فهرست پروکسی پیش از فهرست مستقیم می‌آید چون بعضی دامنه‌ها در هر دو هستند و اولویت دادن به پروکسی با انتظار مردم می‌خواند.

inline: مجموعه‌های کوچک نوشته‌شده در جا

وقتی نمی‌خواهید برای سه مدخل فایل جدا بسازید:

rule-providers:
  my-work:
    type: inline
    behavior: domain
    payload:
      - "+.mycompany.com"
      - "+.internal.corp"
      - "gitlab.internal"

file: استفاده از فایل محلی

برای قواعدی که خودتان نگه می‌دارید:

rule-providers:
  personal:
    type: file
    behavior: classical
    path: ./ruleset/personal.list

با تنظیم interval، بعضی نسخه‌های هسته فایل را دوره‌ای دوباره می‌خوانند. راه مطمئن این است که بعد از ویرایش پیکربندی را دوباره بارگذاری کنید.

وقتی مجموعه قاعده کار نمی‌کند چه بررسی کنیم

ترتیب بررسیبررسی کنید behavior با محتوای فایل بخواند (با فاصله رایج‌ترین اشتباه)بررسی کنید فایل مسیر path واقعاً دانلود شده باشددر لاگ نام provider را جست‌وجو کنید و دنبال شکست دانلود بگردیدآیا url مستقیم در مرورگر باز می‌شودآیا قاعده‌ای بالاتر خط RULE-SET را می‌قاپدآیا MATCH تصادفاً بالای خطوط RULE-SET افتاده

فایل کش‌شده را ببینید

فایلی که در path نام‌برده شده در پوشهٔ پیکربندی شماست؛ فقط بازش کنید:

  • فایل نیست ← دانلود شکست خورده؛ url و تنظیم proxy را بررسی کنید
  • محتوای فایل HTML است ← آن url یک صفحهٔ وب برگردانده (مثلاً صفحهٔ ۴۰۴)؛ نشانی غلط است
  • فایل سالم به نظر می‌رسد ولی قواعد کاری نمی‌کنند ← ناهماهنگی behavior

روی ویندوز پوشهٔ پیکربندی معمولاً این است:

%APPDATA%\io.github.clash-verge-rev.clash-verge-rev\

لاگ را بخوانید

سطح لاگ را روی debug بگذارید و نام provider را جست‌وجو کنید؛ کل توالی دانلود و بارگذاری را می‌بینید:

INFO Start initial provider cn-domain
INFO Provider cn-domain loaded, 12043 rules

دیدن loaded, N rules یعنی کار کرده. اگر N صفر باشد، behavior یا قالب غلط است.

ملاحظات کارایی

مصرف منابع مجموعه‌های بزرگ1حافظهتقریباً چند مگابایت به‌ازای هر ده هزار قاعدهٔ دامنه‌ای؛ در مقیاس صدهزارتایی ارزش پاییدن دارد2نخستین بارگذاریدانلود و تجزیه چند ثانیه به راه‌اندازی اضافه می‌کند3هزینهٔ تطبیقمجموعه‌های دامنه‌ای از درخت پسوند استفاده می‌کنند و نزدیک به O(1) هستند؛ classical خط‌به‌خط مقایسه می‌کند و خیلی کندتر است4توصیهمجموعه‌های domain

اگر مجموع مجموعه‌قواعدتان از صدهزار مدخل می‌گذرد و دستگاه متوسطی دارید (روتر نرم‌افزاری، گوشی قدیمی)، این‌ها را در نظر بگیرید:

  • رفتن به قالب mrs
  • انداختن مجموعه‌هایی که به کار نمی‌برید (سکوهای پخشی که تماشا نمی‌کنید)
  • جایگزین کردن بخشی از فهرست‌های دامنه با GEOSITE که پایگاه دادهٔ توکار هسته را می‌گیرد و دانلود اضافه نمی‌خواهد

خلاصه

  • behavior باید با محتوای فایل متناظر باشد؛ اشتباه بگذارید بی‌صدا از کار می‌افتد
  • هنگام ارجاع به مجموعه‌های مبتنی بر IP گزینهٔ no-resolve بگذارید
  • به هر provider فیلد proxy بدهید تا به‌روزرسانی شکست نخورد
  • ترتیب مجموعه‌ها: خصوصی ← مسدودسازی ← پروکسی ← مستقیم ← IP ← GEOIP ← MATCH
  • وقتی هیچ اتفاقی نمی‌افتد، اول ببینید در فایل کش‌شده واقعاً چه هست

بعدی یک تمرین عملی: هم‌زیستی شبکهٔ داخلی سازمان، دسترسی مستقیم محلی و پروکسی خارجی.


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

تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم
قواعد و مسیریابی تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم

یک پیکربندی کامل که هم‌زمان به VPN داخلی سازمان و دسترسی مستقیم محلی و سرویس‌های خارجی پروکسی‌شده سرویس می‌دهد: دامنه‌ها و بازه‌های IP، مسیریابی DNS، و تعارض‌هایی که پیش می‌آید.

2026-07-171389 واژه3 دقیقه مطالعه
مسیریابی برنامه‌های خاص با قواعد PROCESS-NAME
قواعد و مسیریابی مسیریابی برنامه‌های خاص با قواعد PROCESS-NAME

تصویر کامل مسیریابی بر پایهٔ فرایند: روشن کردن find-process-mode، پیدا کردن نام فرایند، تفاوت PROCESS-NAME و PROCESS-PATH، هزینهٔ کارایی، و اینکه چرا قاعده‌ای که نوشته‌اید کاری نمی‌کند.

2026-06-221338 واژه3 دقیقه مطالعه