گروههای پروکسی در mihomo: select، url-test و fallback
فهرست مطلب
وقتی اشتراک را وارد میکنید، در صفحه پروکسیها چند کارت با نامهایی مثل «انتخاب دستی»، «خودکار» یا نام کشورها میبینید. اینها گروههای پروکسی هستند: لایهای بین فهرست خام سرورها و قواعد مسیریابی که تصمیم میگیرد در هر لحظه کدام سرور واقعاً استفاده شود.
گروهها در mihomo چند نوع دارند و هرکدام رفتار متفاوتی دارند: یکی منتظر انتخاب شماست، یکی خودش تأخیر را میسنجد و سریعترین را برمیدارد، یکی فقط وقتی گزینه اول خراب شود سراغ گزینه بعدی میرود. در ادامه هر نوع را با یک قطعه YAML واقعی میبینید، بههمراه ساختار تودرتویی که تقریباً همه اشتراکهای حرفهای از آن استفاده میکنند.
گروه پروکسی چه مشکلی را حل میکند؟
تصور کنید اشتراکی با پنجاه سرور دارید و میخواهید ترافیک ویدیو از یک منطقه خاص برود و بقیه ترافیک از هر جای دیگری. اگر قواعد مستقیماً به نام سرورها اشاره کنند، هر بار که سرویسدهنده فهرست را عوض کند باید دهها خط را دستی ویرایش کنید.
گروه این وابستگی را میشکند. قاعده به نام گروه اشاره میکند و گروه تصمیم میگیرد کدام سرور را به کار بگیرد. نتیجه این است که با یک کلیک در رابط کاربری، بدون دست زدن به فایل پیکربندی، رفتار کل مسیر عوض میشود.
select: انتخاب دستی
سادهترین و پرکاربردترین نوع. گروه فهرستی از گزینهها را نشان میدهد و تا وقتی خودتان چیزی را عوض نکنید، همان انتخاب باقی میماند:
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "Auto"
- "Germany 01"
- "Netherlands 02"
- DIRECT
گنجاندن DIRECT در فهرست یک ترفند مفید است: با یک انتخاب میتوانید هر ترافیکی را که به این گروه میرسد موقتاً بدون پروکسی بفرستید؛ برای عیبیابی عالی است.
url-test: انتخاب خودکار سریعترین سرور
این نوع گروه بهصورت دورهای به یک آدرس آزمایشی درخواست میفرستد، زمان پاسخ هر عضو را میسنجد و کمتأخیرترین را فعال نگه میدارد:
- name: "Auto"
type: url-test
proxies:
- "Germany 01"
- "Netherlands 02"
- "Japan 03"
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 50
مقدار interval فاصله زمانی سنجش را برحسب ثانیه تعیین میکند. tolerance هم آستانهای بر حسب میلیثانیه است تا گروه سر اختلافهای ناچیز مدام سرور را عوض نکند؛ بدون آن، تجربه کاربری با هر نوسان شبکه بههم میریزد.
نکته: کمترین تأخیر لزوماً به معنای بهترین کیفیت نیست. سرور با پینگ پایین ممکن است پهنای باند شلوغی داشته باشد؛ اگر دانلود کند بود، دستی سراغ گزینههای دیگر بروید.
fallback و load-balance
در fallback ترتیب فهرست حکم میکند. گروه همیشه از عضو اول استفاده میکند و فقط وقتی سلامتش تأیید نشود به عضو بعدی میرود:
- name: "Backup"
type: fallback
proxies:
- "Main Line"
- "Reserve Line"
url: "http://www.gstatic.com/generate_204"
interval: 300
این دقیقاً همان چیزی است که برای «یک خط اصلی و یک خط پشتیبان» میخواهید؛ برخلاف url-test، گروه دنبال سریعترین نیست، دنبال در دسترسترین به ترتیب اولویت است.
نوع load-balance کار دیگری میکند: بهجای انتخاب یک عضو، اتصالها را میان اعضا پخش میکند. برای پراکنده کردن بار روی چند سرور مفید است، اما چون درخواستهای یک نشست ممکن است از خروجیهای متفاوت بروند، بعضی سرویسها با آن دچار مشکل ورود مجدد میشوند. آن را آگاهانه و برای موارد خاص به کار ببرید.
گروههای تودرتو: ساختار رایج اشتراکها
یک گروه میتواند بهجای سرور، گروه دیگری را در فهرست خود داشته باشد. همین قابلیت الگویی ساخته که در بیشتر اشتراکها میبینید: چند گروه منطقهای که سرورهای هر کشور را با url-test جمع میکنند، و چند گروه کاربردی که قواعد به آنها اشاره میکنند و اعضایشان همان گروههای منطقهایاند.
- name: "Streaming"
type: select
proxies:
- "Germany"
- "Japan"
- "Proxy"
- name: "Germany"
type: url-test
proxies:
- "Germany 01"
- "Germany 02"
interval: 300
با این ساختار، قاعده مربوط به ویدیو فقط به Streaming اشاره میکند و شما بدون لمس قواعد مسیریابی میتوانید منطقه خروج آن دسته از ترافیک را عوض کنید. تنها خطر، ارجاع حلقوی است: مراقب باشید دو گروه به هم اشاره نکنند، وگرنه هسته بالا نمیآید.
کدام نوع را کجا به کار ببرید
| نوع گروه | رفتار | مناسب برای |
|---|---|---|
select | انتخاب شما تا اطلاع ثانوی ثابت میماند | گروه اصلی و همه جاهایی که کنترل دستی میخواهید |
url-test | دورهای میسنجد و کمتأخیرترین را برمیدارد | گروههای منطقهای و استفاده روزمره بدون دخالت |
fallback | بهترتیب فهرست، اولین عضو سالم را میگیرد | خط اصلی بههمراه خط پشتیبان |
load-balance | اتصالها را میان اعضا پخش میکند | پخش بار، با احتیاط درباره نشستها |
اگر گروههای موجود در اشتراکتان را پسندیدید، لازم نیست چیزی بنویسید؛ کافی است بدانید هر کدام چه میکند. برای کسانی هم که میخواهند ساختار خودشان را بسازند، منطقیترین شروع همان است که یک گروه select در بالا داشته باشند و بقیه گروهها زیر آن بنشینند. روش تازهسازی این ساختار پس از تغییر سرورها را در راهنمای وارد کردن اشتراک توضیح دادهایم.