رفتن به محتوا

مدیریت کلاینت

meridian client add alice

این به “alice” کلید خود و دو چیز را برای اشتراک می‌دهد:

  • لینک صفحه اتصال با کد QR — ساده‌ترین راه برای ارسال
  • URL اشتراک برای درج مستقیم در برنامه Xray/V2Ray

چندین نفر را یک‌زمان اضافه کنید:

meridian client add alice bob charlie

کلاینت‌ها به کل فلیت شما تعلق دارند، نه یک سرور. هر exit و relay شما در اشتراک آن‌ها نمایش داده می‌شود.

صفحه اتصال از اشتراک واقعی فرد ساخته می‌شود، بنابراین دقیقاً همان چیزی را نشان می‌دهد که برنامه‌های او دریافت می‌کنند: exit‌های مستقیم، relay‌ها و هر روش فعال. شامل:

  • دو مرحله: نصب برنامه‌ای که برای پلتفرم او پیشنهاد شده (اول Happ، بعد FlClashX و Clash Mi، و روی دسکتاپ Throne) و سپس اضافه کردن اتصال با یک ضربه
  • کد QR برای اشتراک؛ روی کامپیوتر کنار مرحله‌ها نشان داده می‌شود تا بتوان گوشی را تنظیم کرد
  • هر اتصال جداگانه با دکمه‌های «باز کردن»، «کپی» و QR، که تا وقتی لازم نشود جمع شده است
  • بخش «متصل نمی‌شوید؟» با چند توصیه و آزمایش «بررسی اتصال من» که گزارشی بدون لینک کپی می‌کند تا برای شما بفرستد

در برنامه، ورودی‌ها بر اساس کشور exit و روش نام‌گذاری می‌شوند: «🇩🇪 DE · Reality · Chrome»، «🇩🇪 DE · XHTTP · Chrome»، «🇩🇪 DE · WebSocket · CDN»، «🇩🇪 DE · Hysteria2 · UDP»؛ برای ورودی‌های relay عبارت «via relay» هم اضافه می‌شود. اگر دو exit در یک کشور باشند، نام آن‌ها بعد از پرچم نمایش داده می‌شود («🇩🇪 main»)؛ exit بدون کشور مشخص، وقتی چند exit دارید با نام خودش نشان داده می‌شود. Reality و XHTTP نسخه‌های «· Firefox» هم دارند با اثر انگشت TLS دیگر، برای وقتی که یک اثر انگشت مسدود شود. برنامه‌هایی که خودکار تعویض می‌کنند (برنامه‌های Xray JSON مثل Happ، و Mihomo و sing-box) خودشان یک ورودی کارآمد انتخاب می‌کنند اما هرگز بین اثر انگشت‌ها جابه‌جا نمی‌شوند؛ Happ برای این کار یک ورودی جدا به نام «Automatic · Firefox» نشان می‌دهد.

لینک را از طریق هر پیام‌رسانی ارسال کنید. گیرنده آن را باز می‌کند، برنامه را نصب می‌کند، «افزودن به …» را می‌زند (یا کد QR را با دستگاه دیگری اسکن می‌کند) و متصل می‌شود. اتصال او را قدم‌به‌قدم همراهی می‌کند و می‌گوید وقتی کار نمی‌کند چه کند؛ آن صفحه را هم برایش بفرستید.

برای اشتراک دوباره لینک‌های کلاینت:

meridian client show alice

این صفحه اتصال و URL اشتراک را چاپ می‌کند، به‌علاوه وضعیت، ترافیک و زمان آخرین اتصال. اگر صفحه گم باشد (مثلاً بارگذاری ناموفق بود)، آن را دوباره منتشر کنید:

meridian client show alice --repair-page
meridian client list

هر کلاینت را با وضعیت، ترافیق، زمان ایجاد و آخرین اتصال نمایش می‌دهد.

معلق کردن و از سرکشی درآوردن کلاینت

Section titled “معلق کردن و از سرکشی درآوردن کلاینت”
meridian client disable alice
meridian client enable alice

disable کلاینت را فوراً قطع می‌کند؛ enable آن‌ها را با همان لینک‌ها دوباره فعال می‌کند.

معلق کردن تا زمان client enable پابرجاست: apply، بازاستقرار و تغییرات fleet به آن دست نمی‌زنند.

اگر لینک یا صفحه اتصال یک کلاینت به دست کسی رسیده که نباید، آن را جایگزین کنید:

meridian client reissue alice

Remnawave یک شناسه اشتراک جدید و کلیدهای جدید به کلاینت می‌دهد. نشانی اشتراک و صفحه اتصال قبلی پاسخ 404 می‌دهند و سرورها کلیدهای قبلی را رد می‌کنند. Meridian صفحه قبلی را حذف می‌کند، صفحه تازه‌ای منتشر می‌کند و صفحه و نشانی اشتراک جدید را برای فرستادن به کلاینت چاپ می‌کند. کلاینت لینک جدید را یک بار وارد می‌کند، چون برنامه‌ها نمی‌توانند اشتراکی را به‌روز کنند که نشانی‌اش دیگر وجود ندارد. بقیه چیزهایی که پنل برای کلاینت نگه می‌دارد سر جایش می‌ماند: وضعیت، سقف و مصرف ترافیک، تاریخ انقضا، توضیحات و محدودیت دستگاه HWID.

محدودیت دستگاه HWID در پنل نگه داشته می‌شود، نه در لینک. دستگاه‌هایی که از قبل ثبت شده‌اند پس از صدور دوباره در فهرست HWID کلاینت می‌مانند و همچنان جا می‌گیرند، هرچند لینک قبلی‌شان دیگر وصل نمی‌شود. کلاینت را در پنل باز کنید و دستگاه‌های ناآشنا را حذف کنید تا محدودیت فقط دستگاه‌های خود کلاینت را بشمارد. Meridian هیچ بلیت ادعا یا اتصال به دستگاهی از خودش اضافه نمی‌کند.

با --json، --yes را هم بدهید. لینک‌های جدید فقط در خروجی همین دستور نمایش داده می‌شوند.

meridian client remove NAME کلاینت را برای‌ابد حذف می‌کند: پیوندهای آن‌ها کار نمی‌کنند و صفحه اتصال آن‌ها حذف می‌شود. فلیت حداقل یک کلاینت نگه می‌دارد. کاربران را در پنل Remnawave مستقیماً حذف نکنید — Meridian هر کلاینتی را که در topology باقی است در بعدی اعمال دوباره ایجاد می‌کند.

URL‌های اشتراک مثل https://198.51.100.10/<page-path>/sub/<id> هستند. آن‌ها زیر مسیر صفحه اتصال زندگی می‌کنند؛ پنل مدیریت Remnawave روی مسیر مخفی جداگانه است که لینک‌های اشتراکی هرگز آن را فاش نمی‌کنند.

هر اشتراک از برنامه‌ها می‌خواهد آن را هر ۶ ساعت تازه کنند (هدر profile-update-interval که برنامه‌هایی مثل Happ و Clash Verge از آن پیروی می‌کنند)، بنابراین هنگام افزودن exit یا relay، کلاینت‌ها ظرف چند ساعت و بدون لینک جدید آن را به‌دست می‌آورند. برنامه‌هایی که این هدر را نادیده می‌گیرند طبق برنامهٔ خودشان تازه می‌کنند؛ تازه‌سازی دستی در برنامه تغییرات را فوراً می‌گیرد.

دکمهٔ پشتیبانی در برنامه، صفحهٔ اتصال همان شخص را با راهنمای «متصل نمی‌شوید؟» باز می‌کند. برای فرستادن افراد به جای دیگر، هدر support-url خودتان را در تنظیمات اشتراک پنل بگذارید؛ Meridian آن را نگه می‌دارد.

برنامه‌ها و engineهای آزمایش‌شده

Section titled “برنامه‌ها و engineهای آزمایش‌شده”

یک URL اشتراک به هر برنامه همان قالبی را می‌دهد که آن برنامه می‌خواند. با هر تغییر در Meridian یک آزمایشگاه چندنودی اجرا می‌شود که هر قالب را از یک پنل واقعی Remnawave می‌گیرد و با engineی که این برنامه‌ها بر پایهٔ آن ساخته شده‌اند بررسی می‌کند:

قالببرنامه‌هاengine آزمایش‌شدهآزمایشگاه چه چیزی را بررسی می‌کند
Xray JSONHapp، v2rayNG، v2rayN، Streisand، V2BoxXray 26.7.28ترافیک از هر نقطهٔ ورود و از failover خودکار عبور می‌کند؛ کلید اشتباه رد می‌شود
MihomoFlClashX, Clash MiMihomo 1.19.32mihomo -t پروفایل، قوانین آن و گروه fallback آن را بارگذاری می‌کند
sing-boxsing-box (SFA, SFI), Karingsing-box 1.14.3sing-box check پروفایل را بارگذاری می‌کند و گروه خودکار آن مسیر پیش‌فرض است
لینک‌های Base64دیگر برنامه‌های Xray/V2Ray (v2RayTun، Shadowrocket)—هر لینک تجزیه می‌شود و همان سرورها و کلیدی را نام می‌برد که قالب‌های دیگر نام می‌برند

برنامه‌ها به‌روزرسانی engine خودشان را عرضه می‌کنند، بنابراین ممکن است یک برنامه engineی کمی قدیمی‌تر یا جدیدتر از engine آزمایش‌شده اجرا کند.

محل زندگی اطلاعات کلاینت

Section titled “محل زندگی اطلاعات کلاینت”

حساب‌های کلاینت (کلیدها، وضعیت، ترافیق) در پایگاه داده پنل Remnawave روی سرور control-plane زندگی می‌کنند. فهرست کلاینت‌های که Meridian مدیریت می‌کند بخش توپولوژی شما در ~/.config/meridian/cluster.yml است. فرمان‌های کلاینت از API پنل استفاده می‌کنند و SSH نیاز نیست؛ منتشر کردن صفحه اتصال از SSH به سرور control-plane استفاده می‌کند.

پنل مدیریت Remnawave ترافیق، کاربران و نودها را در مرورگر نشان می‌دهد، و می‌توانید از آن استفاده کنید. meridian panel URL و نام کاربری مدیریت را چاپ می‌کند؛ meridian panel --show-password همچنین رمز عبور را چاپ می‌کند.

Meridian و پنل کار را split می‌کنند تا ویرایش‌های شما بیشتر نشود:

Meridian مدیریت می‌کند (بعدی اعمال نسخه آن را بازگردانده)مال شما برای تغییر (اعمال هرگز به آن‌ها نمی‌رسد)
Nodes، پروفایل‌های config، inbounds، منتشر شدهٔ Hosts، squadsوضعیت هر کلاینت: فعال/غیرفعال، محدودیت‌های ترافیک، انقضا، محدودیت‌های HWID، توضیح
Subscription templates و تنظیمات که Meridian تنظیم می‌کند (عنوان، بازهٔ تازه‌سازی، Xray JSON برای برنامه‌هایی که آن را می‌خوانند، لینک پشتیبانی مگر اینکه لینک خودتان را گذاشته باشید)کاربرانی که خود در پنل ایجاد می‌کنید
کدام کلاینت‌ها وجود دارند، نام‌های آن‌ها و squads آن‌هااطلاعات، plugins، کنترل IP و سایر تنظیمات پنل

meridian plan هر تفاوت در آنچه Meridian مدیریت می‌کند را پیش از هر تغییر نشان می‌دهد. کاربرانی که در پنل اضافه می‌کنید هرگز توسط Meridian فهرست نمی‌شوند، تغییر نمی‌خورند یا حذف نمی‌شوند؛ برای اعطای کسی لینک مریدیان‌مدیریت‌شده و صفحهٔ اتصال، meridian client add را بجای استفاده کنید.

Node pluginهای Remnawave (‏Ingress Filter، Egress Filter، Torrent Blocker، Connection Drop) اختیاری‌اند و در پنل قرار دارند. برای استفاده از آن‌ها، Node Plugins را در UI مدیریت باز کنید، یک پیکربندی plugin بسازید، pluginهای دلخواه را فعال کنید و آن را به nodeهای خود متصل کنید. Meridian از قبل هر node را با capability ‏NET_ADMIN که pluginها لازم دارند اجرا می‌کند و پیکربندی‌های plugin شما را هرگز تغییر نمی‌دهد و حذف نمی‌کند.

pluginها قوانین nftables را روی host می‌نویسند، بنابراین upstream به کرنل Linux نسخهٔ 5.7 یا جدیدتر هم نیاز دارد؛ روی کرنل قدیمی‌تر بی‌صدا هیچ کاری نمی‌کنند. meridian check این را روی هر exit و gateway با عنوان Node plugin readiness گزارش می‌کند و دربارهٔ کرنل قدیمی هشدار می‌دهد (به Ubuntu 22.04+ یا Debian 11+ بروید). اگر از pluginها استفاده نمی‌کنید، می‌توانید آن هشدار را نادیده بگیرید.

Torrent Blocker از طریق sniffing ترافیک، BitTorrent را تشخیص می‌دهد و Meridian آن را (به‌صورت route-only، بنابراین مقصدها هرگز بازنویسی نمی‌شوند) روی هر inboundی که تولید می‌کند روشن می‌کند. plugin را در پنل فعال کنید تا روی هر exit کار کند.

ربات‌های جامعه، مثل ربات تلگرامی که می‌گوید چقدر ترافیک باقی مانده، مستقیم با API ‏Remnawave صحبت می‌کنند. به هر ربات توکن جداگانه‌ای بدهید که فقط دسترسی لازم را داشته باشد:

  1. پنل را باز کنید (meridian panel نشانی را چاپ می‌کند)، به Remnawave Settings → API tokens (تنظیمات Remnawave، توکن‌های API) بروید و Create API token را بزنید.
  2. توکن را به نام ربات نام‌گذاری کنید و Expires in (days) را روی مدتی بگذارید که واقعاً آن را می‌چرخانید، مثلاً ۳۰ یا ۹۰ روز.
  3. از پیش‌تنظیم Read only شروع کنید، یا endpointهای مشخصی را انتخاب کنید و فقط آنچه ربات استفاده می‌کند بدهید. پنل توکن را فقط یک بار نشان می‌دهد؛ آن را کنار secretهای ربات نگه دارید.
  4. ربات را به URL پنل از meridian panel راهنمایی کنید و توکن را به‌صورت Authorization: Bearer <token> بفرستید. مسیرهای API زیر آن URL قرار می‌گیرند، مثلاً https://198.51.100.10/<secret-path>/api/users/by-username/alice. این URL شامل مسیر مخفی پنل است، پس آن را مثل توکن محرمانه نگه دارید.

scopeها به شکل resource:endpoint نام‌گذاری می‌شوند؛ resource:read همهٔ endpointهای خواندن یک resource را می‌دهد و resource:write همهٔ endpointهای نوشتن را. یک ربات فقط‌خواندنی معمولاً به این‌ها نیاز دارد:

ScopeEndpointبرمی‌گرداند
users:by-usernameGET /api/users/by-username/{username}وضعیت، ترافیک مصرف‌شده و محدودیت، و انقضای یک کاربر
users:by-short-uuidGET /api/users/by-short-uuid/{shortUuid}همان‌ها، با یافتن کاربر از شناسهٔ موجود در لینک اشتراکش
users:listGET /api/usersهمهٔ کاربران، صفحه‌بندی‌شده
system:statsGET /api/system/statsمجموع کاربران و ترافیک کل پنل
nodes:listGET /api/nodesوضعیت و ترافیک هر node

scope نوشتن را فقط وقتی اضافه کنید که ربات حساب‌ها را تغییر می‌دهد، مثلاً users:extend (‏POST /api/users/{id}/actions/extend) برای ربات پرداخت که انقضا را تمدید می‌کند. وضعیت، محدودیت‌ها و انقضا مال شما برای تغییر است (جدول بالا را ببینید)، پس apply بعدی ویرایش‌های ربات را نگه می‌دارد. ربات نباید کلاینت‌های Meridian را تغییر نام دهد یا حذف کند: apply بعدی آن‌ها را دوباره می‌سازد.

توکن خود Meridian را (meridian-provisioner در فهرست توکن‌ها) به ربات ندهید. دسترسی کامل به پنل دارد و عملاً هرگز منقضی نمی‌شود، پس نشت از میزبان ربات همهٔ nodeها، کلیدها و کاربران را فاش می‌کند. توکن جداگانه آسیب را به کارهایی که ربات می‌تواند انجام دهد محدود می‌کند، خودش منقضی می‌شود و بدون تأثیر بر Meridian قابل حذف است. به meridian-provisioner دست نزنید؛ همهٔ دستورهای کلاینت و apply از آن استفاده می‌کنند.