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

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

عبارت باقاعده برای گروه‌بندی خودکار گره‌ها — filter و exclude-filter در عمل

قواعد و مسیریابی2026-05-241495 واژه4 دقیقه مطالعه
عبارت باقاعده برای گروه‌بندی خودکار گره‌ها — filter و exclude-filter در عمل

اشتراکی با صد و خرده‌ای گره، نوشتن دستی عضویت گروه‌ها را ناعملی می‌کند، و همین که اشتراک به‌روز شود همه‌اش می‌شکند.

ترکیب include-all و filter در Mihomo کاری می‌کند که گروه خودش گره‌های متناسب را جمع کند — تمام هنر در درست نوشتن عبارت باقاعده است.

پایه

proxy-groups:
  - name: "🇭🇰 هنگ‌کنگ"
    type: url-test
    include-all: true                         # همه را بگیر
    filter: "(?i)HK|Hong ?Kong"               # فقط تطبیق‌خورده‌ها را نگه دار
    exclude-filter: "(?i)remaining|expire|website"   # بعد این‌ها را بینداز
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50

ترتیب عملیات: include-all همه را جمع می‌کند ← filter تطبیق‌خورده‌ها را نگه می‌دارد ← exclude-filter از همان‌ها کم می‌کند.

سه گزینهٔ include

گزینهچه چیزی را می‌گیرد
include-all: trueبخش proxies به‌علاوهٔ همهٔ proxy-providerها
include-all-proxies: trueفقط گره‌هایی که دستی در proxies نوشته شده‌اند
include-all-providers: trueفقط گره‌های providerها
use: [نام provider]providerهای نام‌برده

وقتی سرورهای خودتان در proxies زندگی می‌کنند و گره‌های اشتراک از provider می‌آیند، این گزینه‌ها کنترل دقیقی می‌دهند که کدام گره در کدام گروه بنشیند.

پایهٔ عبارت باقاعده (به‌قدر نیاز)

همین چند نماد کافی است(?i)بی‌اعتنا به بزرگی حروف، اولش نوشته می‌شود. هم HK و هم hk را می‌گیردخط عمودییا. عبارت "TokyoJP" هرکدام را می‌گیرد?نویسهٔ پیش از خودش اختیاری است. "Hong ?Kong" هم HongKong را می‌گیرد هم Hong Kong^ و $آغاز و پایان. "^HK" فقط نام‌هایی را می‌گیرد که با HK شروع می‌شوند[]مجموعهٔ نویسه. "[0-9]" هر رقمی را می‌گیرد\\dکوتاه‌نوشت رقم، معادل [0-9]

گروه‌بندی بر پایهٔ منطقه

رایج‌ترین نیاز. نام‌های مختلفی که هر منطقه با آن شناخته می‌شود را پوشش بدهید:

# هنگ‌کنگ
filter: "(?i)HK|Hong ?Kong|HKG|🇭🇰"

# تایوان
filter: "(?i)TW|Taiwan|Taipei|TPE|🇹🇼"

# ژاپن
filter: "(?i)JP|Japan|Tokyo|Osaka|🇯🇵"

# سنگاپور
filter: "(?i)SG|Singapore|🇸🇬"

# آمریکا
filter: "(?i)US|USA|United ?States|Los ?Angeles|San ?Jose|Seattle|🇺🇸"

# کرهٔ جنوبی
filter: "(?i)KR|Korea|Seoul|🇰🇷"

# بریتانیا
filter: "(?i)UK|United ?Kingdom|London|🇬🇧"

پالایش بر پایهٔ ضریب

خیلی از اشتراک‌ها ضریب ترافیک را در نام گره می‌گذارند (0.5x، 1x، 3x).

# فقط ضریب‌های پایین (صرفه‌جویی ترافیک)
filter: "(?i)0\\.[0-9]x|1x|1\\.0x"

# ضریب‌های بالا را مستثنا کنید
exclude-filter: "(?i)[2-9](\\.[0-9])?x|1[0-9]x"

# فقط گره‌هایی که خط اختصاصی علامت خورده‌اند (معمولاً بهترین کیفیت)
filter: "(?i)IPLC|IEPL|dedicated|premium"

مستثنا کردن شبه‌گره‌ها

مدخل‌هایی مثل «باقی‌مانده: ۱۲۸ گیگابایت» یا «انقضا: ۳۰ روز» اطلاعاتی هستند که برای نمایش در نام گره چپانده شده‌اند؛ گرهٔ واقعی نیستند.

exclude-filter: "(?i)remaining|expire|expired|traffic|reset|website|subscription|url|group|announcement|backup|test|GB|Days?"

پالایش بر پایهٔ پروتکل

# فقط Hysteria2 (برای کارهای کم‌تأخیر)
filter: "(?i)hy2|hysteria"

# مستثنا کردن بعضی پروتکل‌ها (Mihomo فیلد اختصاصی دارد که قابل‌اتکاتر است)
exclude-type: "ss|ssr|http"

exclude-type بر پایهٔ نوع واقعی پروتکل پالایش می‌کند که به‌مراتب از حدس زدن از روی نام گره مطمئن‌تر است.

ترکیب شرط‌ها

عبارت باقاعده در بیان «و» دست‌وپاچلفتی است، ولی دو لایه پالایش این را حل می‌کند:

# هنگ‌کنگ و ضریب پایین
- name: "🇭🇰 هنگ‌کنگ کم‌ضریب"
  type: url-test
  include-all: true
  filter: "(?i)HK|Hong ?Kong"
  exclude-filter: "(?i)[2-9](\\.[0-9])?x|remaining|expire"
  interval: 300

filter دامنه را به هنگ‌کنگ می‌رساند، بعد exclude-filter ضریب‌های بالا و شبه‌گره‌ها را برمی‌دارد.

برای منطق «و» واقعاً پیچیده، پیش‌نگری عبارت باقاعده جواب می‌دهد:

# هم "Hong Kong" داشته باشد هم "IPLC"
filter: "(?i)(?=.*Hong ?Kong)(?=.*IPLC).*"

هرجا می‌شود از آن بپرهیزید — خوانایی به‌شدت آسیب می‌بیند و نگهداری عذاب می‌شود.

یک الگوی کامل

proxy-providers:
  main:
    type: http
    url: "لینک اشتراک شما"
    interval: 3600
    path: ./providers/main.yaml
    header: { User-Agent: ["clash.meta"] }
    exclude-filter: "(?i)remaining|expire|expired|traffic|reset|website|subscription|group|announcement|backup"
    health-check: { enable: true, url: http://www.gstatic.com/generate_204, interval: 300, lazy: true }

proxy-groups:
  # کلید اصلی
  - name: "🚀 انتخاب"
    type: select
    proxies: ["♻️ خودکار", "🇭🇰 هنگ‌کنگ", "🇯🇵 ژاپن", "🇸🇬 سنگاپور", "🇺🇸 آمریکا", "🇹🇼 تایوان", "💎 اختصاصی", DIRECT]

  # خودکار سراسری
  - name: "♻️ خودکار"
    type: url-test
    use: [main]
    url: http://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    lazy: true

  # گروه‌های منطقه‌ای
  - name: "🇭🇰 هنگ‌کنگ"
    type: url-test
    use: [main]
    filter: "(?i)HK|Hong ?Kong|🇭🇰"
    interval: 300
    tolerance: 50
  - name: "🇯🇵 ژاپن"
    type: url-test
    use: [main]
    filter: "(?i)JP|Japan|Tokyo|Osaka|🇯🇵"
    interval: 300
    tolerance: 50
  - name: "🇸🇬 سنگاپور"
    type: url-test
    use: [main]
    filter: "(?i)SG|Singapore|🇸🇬"
    interval: 300
    tolerance: 50
  - name: "🇺🇸 آمریکا"
    type: url-test
    use: [main]
    filter: "(?i)US|USA|United ?States|Los ?Angeles|San ?Jose|🇺🇸"
    interval: 300
    tolerance: 50
  - name: "🇹🇼 تایوان"
    type: url-test
    use: [main]
    filter: "(?i)TW|Taiwan|Taipei|🇹🇼"
    interval: 300
    tolerance: 50

  # خطوط اختصاصی (بهترین کیفیت، برای بازی و ویدیو)
  - name: "💎 اختصاصی"
    type: fallback
    use: [main]
    filter: "(?i)IPLC|IEPL|dedicated|premium"
    interval: 600

  # بر پایهٔ کاربرد
  - name: "🤖 سرویس‌های هوش مصنوعی"
    type: select
    proxies: ["🇺🇸 آمریکا", "🇯🇵 ژاپن", "🇸🇬 سنگاپور", "🚀 انتخاب"]
  - name: "🎬 پخش آنلاین"
    type: select
    proxies: ["🇭🇰 هنگ‌کنگ", "🇸🇬 سنگاپور", "💎 اختصاصی", "🚀 انتخاب"]
  - name: "🎮 بازی"
    type: select
    proxies: ["💎 اختصاصی", "🇭🇰 هنگ‌کنگ", "🇯🇵 ژاپن"]
  - name: "🐟 باقی‌ماندهٔ ترافیک"
    type: select
    proxies: ["🚀 انتخاب", DIRECT]

چطور بسنجیم فیلتر درست است

چرخهٔ سنجشپیکربندی را ذخیره و دوباره بارگذاری کنیددر کلاینت روی reload بزنیدصفحهٔ پروکسی‌ها را باز کنیدگروهی که نوشته‌اید را پیدا کنیدگره‌ها را بشماریدبا انتظارتان می‌خواند؟نام گره‌ها را بخوانیدچیز ناخواسته‌ای وارد شده؟
گروه خالی یعنی فیلتر زیادی سختگیر است، یا اصلاً غلط

گروه خالی است — به این ترتیب بررسی کنید:

۱. آیا در عبارت باقاعده غلط تایپی هست (مراقب فاصله‌های سرگردان در نام گره‌ها باشید) ۲. آیا (?i) را فراموش کرده‌اید در حالی که نام گره‌ها با حروف کوچک hk نوشته شده ۳. آیا exclude-filter زیادی گسترده است و آنچه می‌خواستید را برداشته ۴. آیا providerی که در use نام برده‌اید با موفقیت بارگذاری شده

گره‌های ناخواسته وارد شده‌اند:

یک کلمهٔ شاخص از نام آن گره را به exclude-filter اضافه کنید، یا filter را با ^ یا $ دقیق‌تر مقید کنید.

دام‌های رایج

کجاها اشتباه می‌شودفراموش کردن (?i) — ناهماهنگی بزرگی حروف رایج‌ترین علت استپالایش با تکهٔ دوحرفی (US و SG و JP) — از حد می‌گذرد، پس مقیدش کنید یا نام را کامل بنویسیدفاصله دور خط عمودی — عبارت "Hong KongHK" فاصله‌ها را داخل تطبیق می‌کشدفاصله‌های تمام‌عرض در نام گره‌ها — با فاصلهٔ معمولی یک نویسه نیستندنقطه در عبارت باقاعده هر نویسه‌ای را می‌گیرد — ضریبی مثل 0.5x باید به شکل 0\\.5x گریز داده شودایموجی هم تطبیق می‌خورد — بعضی اشتراک‌ها به‌جای کلمه از پرچم استفاده می‌کنند

کِی فیلتر لازم نیست

با تعداد کم گره (ده‌دوازده‌تا)، نام‌های نامنظم، یا وقتی می‌خواهید کاملاً بر محتوای هر گروه مسلط باشید، نوشتن دستی نام گره‌ها کاملاً درست است:

- name: "🇭🇰 هنگ‌کنگ"
  type: url-test
  proxies:
    - "Hong Kong IPLC 01"
    - "Hong Kong BGP 02"
  interval: 300

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

خلاصه

  • (?i) تقریباً همیشه لازم است
  • تکهٔ دوحرفی را به‌تنهایی به‌عنوان کلمهٔ فیلتر به کار نبرید — از حد می‌گذرد
  • شبه‌گره‌ها را یک بار در سطح provider مستثنا کنید نه در هر گروه
  • exclude-type از حدس زدن پروتکل از روی نام بهتر است
  • بعد از نوشتن، حتماً در صفحهٔ پروکسی‌ها گره‌ها را بشمارید تا مطمئن شوید
  • خطوط اختصاصی را در یک گروه fallback جدا بگذارید برای بازی و ویدیو

بیشتر بخوانید: پنج نوع proxy-groups و مدیریت چند اشتراک.


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

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

جایگزین کردن صدها قاعدهٔ دستی با فهرست‌های بیرونی. تفاوت سه behavior یعنی domain و ipcidr و classical، قالب text در برابر yaml، تنظیم بازهٔ به‌روزرسانی، و وقتی مجموعه قاعده کار نمی‌کند چه چیزی را بررسی کنیم.

2026-07-211355 واژه3 دقیقه مطالعه
تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم
قواعد و مسیریابی تونل تفکیکی در عمل — شبکهٔ داخلی سازمان و دسترسی مستقیم محلی و پروکسی خارجی با هم

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

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