قواعد تعیین میکنند هر اتصال کجا برود. این یک جدول مرجع است بههمراه کاربرد عملی هر نوع.
شکل پایهٔ یک قاعده
rules:
- نوع,چه چیزی تطبیق شود,سیاست[,پارامتر اضافه]برای مثال:
- DOMAIN-SUFFIX,google.com,🚀 انتخاب
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,🐟 باقیماندهٔ ترافیکاز بالا به پایین تطبیق داده میشود؛ نخستین برخورد برنده است و پایینش بررسی نمیشود. همین یک واقعیت زیربنای تمام رفتار قواعد است.
جدول کامل انواع
| نوع | چه چیزی را تطبیق میدهد | نمونه | نکته |
|---|---|---|---|
DOMAIN | یک دامنهٔ دقیق | DOMAIN,www.google.com,PROXY | تطبیق دقیق، سریعترین |
DOMAIN-SUFFIX | پسوند دامنه | DOMAIN-SUFFIX,google.com,PROXY | همهٔ زیردامنهها را میگیرد، پرکاربردترین |
DOMAIN-KEYWORD | دامنه شامل یک کلمه | DOMAIN-KEYWORD,google,PROXY | دامنهٔ گسترده، با احتیاط |
DOMAIN-REGEX | عبارت باقاعده روی دامنه | DOMAIN-REGEX,^api\\..*\\.com$,PROXY | فقط Mihomo |
GEOSITE | مجموعهٔ جغرافیایی دامنه | GEOSITE,youtube,PROXY | به پایگاه دادهٔ geosite نیاز دارد |
IP-CIDR | بازهٔ IPv4 | IP-CIDR,10.0.0.0/8,DIRECT,no-resolve | حواستان به no-resolve باشد |
IP-CIDR6 | بازهٔ IPv6 | IP-CIDR6,::1/128,DIRECT,no-resolve | همان |
IP-SUFFIX | پسوند IP | IP-SUFFIX,8.8.8.8/24,PROXY | فقط Mihomo |
IP-ASN | شمارهٔ سامانهٔ خودگردان | IP-ASN,13335,PROXY | مسیریابی بر پایهٔ اپراتور یا ابر |
GEOIP | کشوری که IP به آن تعلق دارد | GEOIP,CN,DIRECT | به پایگاه دادهٔ geoip نیاز دارد |
SRC-IP-CIDR | IP مبدأ | SRC-IP-CIDR,192.168.1.100/32,DIRECT | مسیریابی بر پایهٔ دستگاه شبکهٔ محلی |
SRC-PORT | پورت مبدأ | SRC-PORT,8080,DIRECT | کمکاربرد |
DST-PORT | پورت مقصد | DST-PORT,22,DIRECT | مسیریابی بر پایهٔ نوع سرویس |
PROCESS-NAME | نام فرایند | PROCESS-NAME,Telegram.exe,PROXY | مسیریابی بر پایهٔ برنامه |
PROCESS-PATH | مسیر کامل فرایند | PROCESS-PATH,/usr/bin/curl,PROXY | دقیقتر |
RULE-SET | ارجاع به یک مجموعه قاعده | RULE-SET,cn-domain,DIRECT | با rule-providers جفت میشود |
AND / OR / NOT | ترکیب منطقی | پایینتر ببینید | فقط Mihomo |
MATCH | پوشش نهایی | MATCH,PROXY | باید آخرین خط باشد |
انتخاب میان سه قاعدهٔ دامنهای
no-resolve واقعاً یعنی چه
این پارامتری است که مردم روی قواعد IP بیشتر از همه اشتباهش میگیرند.
وقتی اتصالی با یک دامنه بهعنوان مقصد میرسد، هسته باید آن دامنه را به IP حل کند تا بتواند با قاعدهٔ IP-CIDR مقایسهاش کند. افزودن no-resolve میگوید: اگر مقصد هنوز دامنه است (حلنشده)، از این قاعده رد شو، نه اینکه فقط برای همین یک پرسوجوی DNS بزنی.
کِی اضافهاش کنیم: به هر قاعدهٔ بازهٔ خصوصی در ابتدای فهرست، بیاستثنا.
- 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
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR6,fc00::/7,DIRECT,no-resolveکِی اضافه نکنیم: به قاعدهٔ پوششدهندهٔ انتهایی مثل GEOIP,CN,DIRECT گزینهٔ no-resolve ندهید، وگرنه ترافیک دامنهای اصلاً به آن نمیرسد.
سه قانون آهنین ترتیب قواعد
قانون یک: MATCH باید آخر باشد. با همهچیز تطبیق میخورد، پس هر چیزی زیرش مرده است.
قانون دو: قاعدهٔ GEOIP,CN بعد از قواعد دامنهای مشخص میآید. خیلی از سرویسهای خارجی گرههای CDN درونمنطقهای دارند که به نشانی محلی حل میشوند. GEOIP اگر خیلی زود بیاید همهشان را مستقیم میفرستد.
قانون سه: قواعد مشخصتر زودتر میآیند. اول DOMAIN، بعد DOMAIN-SUFFIX، بعد DOMAIN-KEYWORD.
ترکیبهای منطقی (Mihomo)
وقتی چند شرط با هم لازم دارید:
# این بازهٔ IP را فقط وقتی پروکسی کن که فرایند تلگرام درخواستکننده باشد
- AND,((PROCESS-NAME,Telegram.exe),(IP-CIDR,91.108.4.0/22)),PROXY
# پورت مقصد ۲۲ و خارج از منطقه
- AND,((DST-PORT,22),(NOT,((GEOIP,CN)))),PROXY
# هرکدام کافی است
- OR,((DOMAIN-SUFFIX,openai.com),(DOMAIN-SUFFIX,anthropic.com)),🤖 سرویسهای هوش مصنوعیحواستان به تودرتویی پرانتزها باشد — راحت یکی جا میماند. اگر قاعدهای ساده همان را بیان میکند همان را بردارید: خواناتر است و سریعتر اجرا میشود.
کارایی: کدام قواعد گراناند
توصیهٔ عملی:
- قواعدی که زیاد میخورند را زودتر بگذارید تا میانگین تعداد مقایسه پایین بیاید
- بهجای صدها قاعدهٔ دامنهای دستی از
RULE-SETاستفاده کنید PROCESS-NAMEرا فقط جایی که واقعاً لازم است به کار ببرید و دیرتر بگذاریدش- از تعداد زیاد
DOMAIN-REGEXبپرهیزید
چطور بفهمیم یک اتصال با کدام قاعده تطبیق خورده
صفحهٔ Connections را در Clash Verge باز کنید؛ ستون «Rule» نام قاعدهای که تطبیق خورده را میگوید.
سریعترین راه تشخیص مشکل مسیریابی همین است:
نمونهٔ اصلاح — دامنهای با GEOIP,CN مستقیم فرستاده شده و شما پروکسی میخواهید:
# در پیکربندی توسعهیافتهٔ سراسری
prepend-rules:
- DOMAIN-SUFFIX,example.com,🚀 انتخابprepend-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
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
- IP-CIDR6,::1/128,DIRECT,no-resolve
- IP-CIDR6,fc00::/7,DIRECT,no-resolve
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-SUFFIX,lan,DIRECTدور زدن مشکل QUIC (روی بعضی شبکهها UDP 443 بد رفتار میکند)
- AND,((NETWORK,UDP),(DST-PORT,443)),REJECTواداشتن یک دستگاه شبکهٔ محلی به رفتن مستقیم
- SRC-IP-CIDR,192.168.1.50/32,DIRECTنگه داشتن ترافیک بیتتورنت بیرون از پروکسی (خیلی از ارائهدهندهها در شرایطشان منعش کردهاند)
- DST-PORT,6881-6889,DIRECT
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,transmission-daemon,DIRECTخلاصه
- بار اصلی روی DOMAIN-SUFFIX است؛ از KEYWORD کم استفاده کنید
- همیشه به قواعد ابتدایی IP گزینهٔ no-resolve بدهید، و زیر fake-ip اجباری است
- ترتیب: خصوصی ← مسدودسازی ← دامنهها ← مجموعهقواعد ← GEOIP ← MATCH
- با ستون Rule در صفحهٔ اتصالها تشخیص بدهید، با
prepend-rulesاصلاح کنید
بعدی، میزبانی قواعد در بیرون: مجموعهقواعد راه دور با rule-providers.
مستندات مرتبط
جایگزین کردن صدها قاعدهٔ دستی با فهرستهای بیرونی. تفاوت سه behavior یعنی domain و ipcidr و classical، قالب text در برابر yaml، تنظیم بازهٔ بهروزرسانی، و وقتی مجموعه قاعده کار نمیکند چه چیزی را بررسی کنیم.
یک پیکربندی کامل که همزمان به VPN داخلی سازمان و دسترسی مستقیم محلی و سرویسهای خارجی پروکسیشده سرویس میدهد: دامنهها و بازههای IP، مسیریابی DNS، و تعارضهایی که پیش میآید.
تصویر کامل مسیریابی بر پایهٔ فرایند: روشن کردن find-process-mode، پیدا کردن نام فرایند، تفاوت PROCESS-NAME و PROCESS-PATH، هزینهٔ کارایی، و اینکه چرا قاعدهای که نوشتهاید کاری نمیکند.