اشتراکی با صد و خردهای گره، نوشتن دستی عضویت گروهها را ناعملی میکند، و همین که اشتراک بهروز شود همهاش میشکند.
ترکیب 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 میآیند، این گزینهها کنترل دقیقی میدهند که کدام گره در کدام گروه بنشیند.
پایهٔ عبارت باقاعده (بهقدر نیاز)
گروهبندی بر پایهٔ منطقه
رایجترین نیاز. نامهای مختلفی که هر منطقه با آن شناخته میشود را پوشش بدهید:
# هنگکنگ
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: 300filter دامنه را به هنگکنگ میرساند، بعد 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]چطور بسنجیم فیلتر درست است
گروه خالی است — به این ترتیب بررسی کنید:
۱. آیا در عبارت باقاعده غلط تایپی هست (مراقب فاصلههای سرگردان در نام گرهها باشید) ۲. آیا (?i) را فراموش کردهاید در حالی که نام گرهها با حروف کوچک hk نوشته شده ۳. آیا exclude-filter زیادی گسترده است و آنچه میخواستید را برداشته ۴. آیا providerی که در use نام بردهاید با موفقیت بارگذاری شده
گرههای ناخواسته وارد شدهاند:
یک کلمهٔ شاخص از نام آن گره را به exclude-filter اضافه کنید، یا filter را با ^ یا $ دقیقتر مقید کنید.
دامهای رایج
کِی فیلتر لازم نیست
با تعداد کم گره (دهدوازدهتا)، نامهای نامنظم، یا وقتی میخواهید کاملاً بر محتوای هر گروه مسلط باشید، نوشتن دستی نام گرهها کاملاً درست است:
- name: "🇭🇰 هنگکنگ"
type: url-test
proxies:
- "Hong Kong IPLC 01"
- "Hong Kong BGP 02"
interval: 300بهایش این است که گرههای تازهای که بعد از بهروزرسانی اشتراک میآیند خودکار اضافه نمیشوند و باید دستی نگهداری شوند.
خلاصه
(?i)تقریباً همیشه لازم است- تکهٔ دوحرفی را بهتنهایی بهعنوان کلمهٔ فیلتر به کار نبرید — از حد میگذرد
- شبهگرهها را یک بار در سطح provider مستثنا کنید نه در هر گروه
exclude-typeاز حدس زدن پروتکل از روی نام بهتر است- بعد از نوشتن، حتماً در صفحهٔ پروکسیها گرهها را بشمارید تا مطمئن شوید
- خطوط اختصاصی را در یک گروه fallback جدا بگذارید برای بازی و ویدیو
بیشتر بخوانید: پنج نوع proxy-groups و مدیریت چند اشتراک.
مستندات مرتبط
نحو و منطق تطبیق و هزینهٔ نسبی هر نوع قاعده، اینکه no-resolve واقعاً چه میکند، چرا ترتیب قواعد همهچیز را تعیین میکند، و چطور بفهمیم یک اتصال با کدام قاعده تطبیق خورده.
جایگزین کردن صدها قاعدهٔ دستی با فهرستهای بیرونی. تفاوت سه behavior یعنی domain و ipcidr و classical، قالب text در برابر yaml، تنظیم بازهٔ بهروزرسانی، و وقتی مجموعه قاعده کار نمیکند چه چیزی را بررسی کنیم.
یک پیکربندی کامل که همزمان به VPN داخلی سازمان و دسترسی مستقیم محلی و سرویسهای خارجی پروکسیشده سرویس میدهد: دامنهها و بازههای IP، مسیریابی DNS، و تعارضهایی که پیش میآید.