این رابط کنترل چیست
هسته هنگام اجرا یک رابط HTTP روی همین دستگاه باز میکند. در پیکربندی اسمش external-controller است و مقدار پیشفرض رایج 127.0.0.1:9090. صفحههای اتصالات، قوانین و لاگ خودِ کلاینت هم دارند همین رابط را میخوانند؛ رابط گرافیکی فقط یک پوسته روی آن است. چون رابط عمومی است، برنامههای دیگر هم میتوانند بخوانند.
external-controller: 127.0.0.1:9090
secret: "یک رشته تصادفی طولانی بگذارید"
external-ui: ui
secret همان رمز دسترسی است که داشبورد از شما میخواهد. خالی گذاشتنش یعنی هر چیزی که به آن آدرس و پورت برسد میتواند گرهها را عوض کند، حالت را تغییر دهد و دامنههایی را که سر زدهاید ببیند. external-ui اختیاری است: فایلهای ثابت یک داشبورد را در آن پوشه بگذارید تا هسته روی پورت 9090 سرو کند و وابسته به سایتی که مال شما نیست نباشید.
سه نوع داشبورد
- داخل خود کلاینت. Clash Verge Rev و Mihomo Party و مشابههایشان اتصالات، قوانین و لاگ را روی صفحه دارند. برای کار روزمره همین کافی است و چیزی هم لازم نیست تنظیم شود.
- داشبوردهای وب متنباز مستقل؛ metacubexd و yacd و zashboard نامهایی هستند که بیشتر میبینید. ستون بیشتر، مرتبسازی بهتر، قطع دستهجمعی اتصال — بهطور کلی ریزتر از نمای داخلی.
- مدیریت از راه دور. وقتی هسته روی روتر یا آن دستگاهی که همیشه روشن است اجرا میشود و میخواهید از مرورگر لپتاپ کنترلش کنید، داشبورد خارجی دیگر تجمل نیست، تنها راه است.
وصل کردن
- اول ببینید
external-controllerدر پیکربندی چه آدرس و پورتی را نام برده. اگر عوضش کردهاید، پیکربندی را دوباره بارگذاری کنید؛ بستن و باز کردن پنجره حساب نیست. - داشبورد را باز کنید و میزبان (برای همین دستگاه 127.0.0.1)، پورت و secret را وارد کنید.
- اگر وصل نشد، دو حالت خطا را از هم جدا کنید: secret اشتباه معمولا پیام صریح unauthorized میدهد، ولی پورت بسته فقط میچرخد یا تایماوت میشود.
- داشبوردی که روی https سرو میشود وقتی با رابط http روی دستگاه شما حرف بزند، مرورگر آن را به عنوان mixed content مسدود میکند. یا داشبورد را محلی اجرا کنید یا در مرورگر برای آن سایت استثنا بگذارید.
داشبورد واقعا در چه چیزی بهتر است
- دنبال کردن یک دامنه. در فهرست اتصالات جستجویش کنید و میبینید کدام قانون مطابقت کرده، از کدام گره بیرون رفته، چقدر باز بوده و چند بایت در هر جهت رد شده. وقتی قانونی که نوشتهاید اثر نمیکند، همینجا آن قانون قبلی که جلویش را گرفته پیدا میشود.
- پیدا کردن پرمصرفترین. بر اساس آپلود یا دانلود مرتب کنید تا هر چه خط را پر کرده فورا بیاید بالا. هشت بار از ده بار یک برنامه است که در پسزمینه دارد آپدیت میگیرد.
- بستن اتصال گیرکرده. اگر اتصالی مدتهاست بیحرکت مانده و هنوز گره را اشغال کرده، ببندیدش؛ برنامه دوباره وصل میشود و دوباره از قوانین رد میشود. بعد از ویرایش قوانین هم همین کار لازم است — اتصالهای قدیمی جابهجا نمیشوند و به خروجی قبلی چسبیدهاند.
روی 0.0.0.0 نگذارید
external-controller را از 127.0.0.1 به 0.0.0.0 تغییر دهید و هر دستگاهی در شبکه به آن رابط میرسد — رابطی که میتواند پیکربندی را بازنویسی کند، گره را عوض کند و فهرست دامنههای بازدیدشده را نشان دهد. در شبکه خوابگاه یا شرکت یا کافه، این یعنی کنترل از راه دور را روی میز جا گذاشتهاید.
اگر واقعا به دسترسی از راه دور نیاز دارید: یک secret طولانی بگذارید، فقط در شبکهای که به آن اعتماد دارید بازش کنید، یا به جای باز کردن پورت آن را از روی SSH تونل کنید. وقتی از صفحه داشبورد میزبانیشده توسط شخص دیگری استفاده میکنید، درخواستها مستقیم از مرورگر شما به رابط خودتان میرود و دادهها به سرور آنها نمیرسد — ولی اسکریپتی که روی آن صفحه اجرا میشود همچنان مال آنهاست. اگر این اذیتتان میکند، فایلها را خودتان میزبانی کنید یا از external-ui استفاده کنید.