رفتن به محتوا

راهنمای Deploy

این راهنما تمام گزینه‌های meridian deploy را پوشش می‌دهد. اگر این استقرار اول شما است، با Getting Started شروع کنید.

meridian deploy 198.51.100.10

یک سرور هم به صورت control plane (پنل Remnawave) و هم به عنوان exit تبدیل می‌شود که ترافیک را حمل می‌کند. Meridian توپولوژی بررسی‌شده‌ای را ایجاد می‌کند که meridian setup تولید می‌کند و آن را با نقاط checkpoint اعمال می‌کند. قبل از اینکه “Done” چاپ کند، ترافیق واقعی را از طریق اشتراک تحویل‌داده‌شده هدایت می‌کند.

meridian deploy را بدون IP اجرا کنید و آن برای شما درخواست می‌کند. برای رد کردن تأیید‌ها --yes اضافه کنید:

meridian deploy 198.51.100.10 --client-name alice --yes

Meridian با کلید SSH وارد می‌شود. بسیاری از ارائه‌دهندگان VPS فقط یک گذرواژهٔ root به شما می‌دهند؛ بنابراین وقتی سرور کلیدهای شما را رد می‌کند اما گذرواژه را می‌پذیرد، meridian deploy تعاملی می‌پرسد:

→ This server accepts only a password. Create a key for Meridian and install it now? [y/N]

y را پاسخ دهید و گذرواژه را (پنهان) تایپ کنید. Meridian کلید مخصوص خودش را در ~/.config/meridian/ssh/meridian_ed25519 می‌سازد، آن را به authorized_keys سرور اضافه می‌کند، بررسی می‌کند که ورود با آن کار می‌کند، آن را در پروفایل سرور ذخیره می‌کند و ادامه می‌دهد. گذرواژه فقط برای همان یک فرمان استفاده می‌شود و هرگز ذخیره یا لاگ نمی‌شود. host key ابتدا تأیید می‌شود، پس گذرواژه فقط به سروری فرستاده می‌شود که fingerprint آن را پذیرفته‌اید. meridian setup هنگام افزودن سرور همین را پیشنهاد می‌دهد.

بدون ترمینال، با --yes یا با --json، Meridian هرگز prompt نمی‌دهد: به‌جای آن با فرمان دستی متوقف می‌شود. یک بار کلید خودتان را نصب کنید و دوباره اجرا کنید:

ssh-copy-id root@198.51.100.10

Hardening پس از deploy ورود با گذرواژه را خاموش می‌کند، پس کلید را نگه دارید: فرمان‌های بعدی به‌طور خودکار از آن استفاده می‌کنند.

پرچمپیش‌فرضتوضیح
--sni HOST(خودکار)هدف camouflage. بدون آن، deploy سایتی را در زیرشبکهٔ خود سرور ترجیح می‌دهد، سپس www.google.com، dl.google.com، www.cloudflare.com
--domain DOMAIN(هیچ)دامنه شما: XHTTP به آن منتقل می‌شود و WSS اضافه می‌شود، هر دو از طریق CDN Cloudflare
--hysteria2/--no-hysteria2فعالHysteria2 را روی UDP/443 به عنوان آخرین fallback ارائه دهید
--client-name NAMEdefaultنام کلاینت اول
--display-name NAME(هیچ)برچسب برای صفحات اتصال (مثل “VPN علی”)
--icon EMOJI_OR_URL(هیچ)آیکون صفحه — emoji یا URL تصویر
--color PALETTEoceanتم رنگ صفحه (ocean/sunset/forest/lavender/rose/slate)
--user USERrootکاربر SSH (کاربران non-root نیاز به sudo بدون رمز عبور دارند)
--ssh-port PORT22پورت SSH، اگر 22 نیست
--harden / --no-hardenفعالورود تنهای کلید SSH، fail2ban و firewall UFW. از --no-harden برای سروری که خدمات دیگری روی آن است استفاده کنید
--warp / --no-warpغیرفعالترافیک خروجی را از طریق Cloudflare WARP ارسال کنید
--geo-block / --no-geo-blockفعالIP‌های روسی و دامنه‌های روسی را روی سرور block کنید
--client-ips / --no-client-ipsخاموشبه پنل اجازه می‌دهد IP واقعی هر کلاینت را ببیند (ببینید IP کلاینت‌ها)
--country CCجست‌وجو می‌شودکشور نمایش‌داده‌شده در نام اتصال‌ها، مثل DE. Meridian آن را از رجیستری آدرس پیدا می‌کند؛ اگر اشتباه بود خودتان مشخص کنید
--yesپرسش تأیید را رد کنید

پرچم‌های برای اسکریپت‌ها و UI‌ها (--json، --events، --request، --dry-run) در CLI reference توصیف شده‌اند.

هدف camouflage (SNI) وب‌سایتی است که سرور شما شخصیت‌سازی می‌کند. این نه دامنه‌ای است که مالک آن هستید — یک سایت واقعی با TLS 1.3 است. هر کسی که سرور شما را probe کند گواهینامه واقعی آن سایت را می‌بیند.

بهترین هدف کنار سرور شما قرار دارد. سانسورچی SNI را همراه با IP سرور شما می‌بیند؛ وقتی DNS آن سایت واقعاً به همان شبکه اشاره می‌کند، این جفت مثل ترافیک عادی به نظر می‌رسد، در حالی که یک سایت خارجی مشهور روی آدرس VPS به چشم می‌آید.

بدون --sni، استقرار اول زیرشبکهٔ خود سرور را برای چنین سایت‌هایی اسکن می‌کند (حدود یک دقیقه) و فقط آن‌هایی را نگه می‌دارد که DNS‌شان به همان زیرشبکه اشاره می‌کند و بررسی TLS 1.3 و HTTP/2 در Reality را می‌گذرانند. بعد به www.google.com، dl.google.com و www.cloudflare.com برمی‌گردد. از اولین هدفی استفاده می‌کند که ترافیک واقعی از آن عبور کند. meridian node add همسایه را به همین شکل انتخاب می‌کند. هدفی که با --sni می‌دهید هرگز جابه‌جا نمی‌شود؛ اگر ترافیک ناموفق باشد، استقرار متوقف می‌شود و گزارش می‌دهد. بازاستقرار هدف ذخیره‌شده را نگه می‌دارد.

برای دیدن خودتان نامزدها، محله IPv4 سرور را اسکن کنید:

meridian scan 198.51.100.10

اسکن یک build ثابت و checksum‌بررسی‌شده RealiTLScanner را روی سرور اجرا می‌کند و دامنه‌های گواهینامه‌ای که پیدا کرده را فهرست می‌کند. سپس با انتخاب خود استقرار کنید:

meridian deploy 198.51.100.10 --sni dl.google.com

برای بررسی دستی یک هدف، meridian check 198.51.100.10 --sni HOST را اجرا کنید. apple.com و icloud.com را از دست بدهید — شبکه‌های آن‌ها با VPS providers مطابقت ندارند.

هدف camouflage در مقابل دامنه

Section titled “هدف camouflage در مقابل دامنه”
  • هدف camouflage (--sni) — یک وب‌سایت محبوب که مالک آن نیستید. Reality آن را شخصیت‌سازی می‌کند.
  • دامنه (--domain) — دامنه‌ای که مالک آن هستید، که به سرور شما اشاره می‌کند. XHTTP و Hysteria2 به آن منتقل می‌شوند، و آن مسیر WSS را از طریق CDN Cloudflare اضافه می‌کند. Domain mode را ببینید.
meridian deploy 198.51.100.10 --no-hysteria2

هر deploy Hysteria2 را روی UDP/443 با گواهینامه دامنه شما یا IP گواهینامه بدون دامنه ارائه می‌دهد. ترافیک آن در obfuscation salamander بسته‌بندی می‌شود، پس سانسورگرها UDP تصادفی را می‌بینند نه QUIC. در شبکه‌های lossy یا پرتاخیری کمک می‌کند؛ جایی که UDP مسدود است، برنامه‌ها به روش‌های TCP که قبل از آن ذکر شده‌اند برمی‌گردند. --no-hysteria2 آن را خاموش می‌کند. Hysteria2 از relay عبور نمی‌کند.

صفحات اتصال را شخصی‌سازی کنید تا دریافت‌کنندگان بدانند چه کسی VPN خود را راه‌اندازی کرده:

meridian deploy 198.51.100.10 --display-name "VPN علی" --icon 🚀 --color sunset
  • --display-name — در سرتیتر و عنوان صفحه نمایش داده می‌شود
  • --icon — emoji یا URL تصویر در بالای صفحه نمایش داده می‌شود
  • --color — پالت رنگی: ocean (پیش‌فرض)، sunset، forest، lavender، rose، slate

برندسازی در cluster.yml ذخیره می‌شود و برای صفحه اتصال هر کلاینت اعمال می‌شود.

برای بازاستقرار، دستور را دوباره اجرا کنید. Meridian مسیرها، کلیدها و کاربران ذخیره‌شده را نگه می‌دارد، بنابراین لینک‌های موجود کار می‌کند. بازاستقرار بدون --sni هدف camouflage ذخیره‌شده را نگه می‌دارد.

در انتهای هر استقرار، Meridian دستور بازاستقرار دقیق را با تنظیمات فعلی شما چاپ می‌کند. با دستورات متفاوت دوباره اجرا آن سرور را تغییر می‌دهد: اضافه‌کردن یا حذف --domain یا --no-hysteria2 این مسیرها را اضافه یا حذف می‌کند.

meridian deploy فقط سروری را بازاستقرار می‌کند که قبلاً exit در فلیت شما است. برای اضافه کردن سرور دیگر، از meridian node add NEW_IP استفاده کنید.

مطمئن نیستید که یک سرور مناسب است؟

meridian check 198.51.100.10

هدف camouflage را بررسی می‌کند، آیا پورت 443 آزاد است و از بیرون قابل دسترس است، DNS دامنه اختیاری، سیستم‌عامل، فضای دیسک و اختلاف ساعت، بدون نصب چیزی.

meridian deploy 198.51.100.10 --user ubuntu

دستورات از طریق sudo اجرا می‌شوند، بنابراین کاربر به sudo بدون رمز عبور نیاز دارد.

اگر به سرور به عنوان root وارد شده‌اید:

meridian deploy local

این SSH را رد می‌کند. check local، scan local و doctor local به همین شکل کار می‌کنند و بعد از استقرار، دستورات بعدی روی سرور نیز به صورت محلی اجرا می‌شود. اجرای Meridian از ماشین خود همچنان توصیه می‌شود، زیرا meridian test نیاز به نقطه نظر بیرونی است.

WARP ترافیک خروجی سرور شما را از طریق Cloudflare ارسال می‌کند، بنابراین وب‌سایت‌ها به جای IP VPS شما آدرس Cloudflare را می‌بینند.

meridian deploy 198.51.100.10 --warp

زمانی که WARP کمک می‌کند: سایت‌هایی که محدوده IP datacenter را مسدود می‌کنند، یا زمانی که می‌خواهید آدرس VPS را از سایت‌های مقصد مخفی کنید.

زمانی که نیاز ندارید: اکثر سایت‌ها بدون آن خوب کار می‌کنند، و یک hop اضافه می‌کند (VPS → Cloudflare → مقصد).

Meridian کلاینت cloudflare-warp را در حالت proxy نصب می‌کند (SOCKS5 روی 127.0.0.1:40000) و آن را outbound Xray می‌سازد. اتصالات ورودی تحت تأثیر قرار نمی‌گیرند. WARP رایگان است و به حساب Cloudflare نیاز ندارد.

WARP تنها برای برخی سایت‌ها

Section titled “WARP تنها برای برخی سایت‌ها”

برای ارسال تنها سایت‌های انتخاب‌شده از طریق WARP و نگه داشتن بقیه مستقیم، یک route روی exit اضافه کنید بجای روشن کردن WARP برای تمام ترافیک. Meridian WARP را بر روی exit برای اولین بار که یک route نیاز دارد تنظیم می‌کند:

meridian route add exit-1 --via warp chatgpt.com netflix.com
meridian route add exit-1 --via block geosite:category-ads-all
meridian route list
meridian route remove exit-1 warp

مقادیر دامنه‌ها (subdomain‌ها شامل)، لیست‌های geosite:NAME یا لیست‌های geoip:NAME از فایل‌های v2fly stock هستند؛ یک route تک نوع را نگه می‌دارد. --via direct برعکس بر روی exit WARP انجام می‌دهد: آن مقاصد WARP را skip می‌کنند. Routes به ترتیبی که آن‌ها را اضافه کردید اعمال می‌شوند، پیش از egress پیش‌فرض exit و پیش از geo-blocking. این routes روی سرور زندگی می‌کنند؛ آن‌ها جدا از قوانین سمت client هستند که سایت‌های روسی مستقیم را در دستگاه کاربر ارسال می‌کند.

به‌طور پیش‌فرض، سرور دامنه‌های روسی (geosite:category-ru) و محدوده‌های IP روسی (geoip:ru) را از طریق proxy مسدود می‌کند. این IP VPS شما را از لاگ‌های خدمات روسی دور می‌کند، که احتمال یافتن و مسدود کردن آن را کاهش می‌دهد.

اگر کاربران شما نیاز به آن سایت‌ها از طریق Meridian دارند، آن را خاموش کنید:

meridian deploy 198.51.100.10 --no-geo-block

برای راهی برای باز کردن سایت‌های روسی بطور مستقیم در حالی‌که مسدودسازی را نگه می‌دارید، Split routing را ببینید.

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

محدودیت IP برای هر کاربر در Remnawave و لاگ‌های اتصال به آدرس‌های واقعی نیاز دارند. آن‌ها را این‌طور فعال کنید:

meridian deploy 198.51.100.10 --client-ips

سپس nginx آدرس هر کلاینت را برای Xray و پنل منتقل می‌کند. Hysteria2 مستقیم و روی UDP است و همیشه آدرس واقعی را نشان می‌دهد. اتصال‌هایی که از relay می‌گذرند آدرس relay را نشان می‌دهند، و WebSocket یا XHTTP از طریق CDN Cloudflare آدرس Cloudflare را. این تنظیم برای کل fleet اعمال می‌شود؛ برای خاموش کردنش، بدون این پرچم دوباره deploy کنید.

پس از اجرای exit، یک relay روی سرور داخلی اضافه کنید تا کاربران زمانی‌که IP خروج مسدود می‌شود راه ورودی داشته باشند. راهنمای Relay را ببینید.

meridian relay add 203.0.113.10 --exit 198.51.100.10

Meridian Remnawave را به عنوان پنل آن نصب می‌کند. پنل توسط nginx روی مسیر مخفی تصادفی، جدا از مسیر صفحه اتصال، پروکسی معکوس می‌شود، بنابراین لینک‌های که اشتراک می‌کنید هرگز آن را فاش نمی‌کنند. meridian panel URL و ورود را چاپ می‌کند (--show-password برای رمز عبور).

مسیر پنل را مثل رمز عبور رفتار کنید. CLI از همان API پنل استفاده می‌کند، بنابراین تغییرات CLI در پنل نمایش داده می‌شوند. Meridian میزبان‌ها، profile‌ها و template‌های را که ایجاد می‌کند مالک است: اگر آن‌ها را در پنل ویرایش کنید، meridian plan تفاوت را گزارش می‌دهد و بعدی اعمال نسخه Meridian را بازگردانده. وضعیت client، محدودیت‌ها، انقضا و کاربرانی که خود اضافه می‌کنید مال شما هستند؛ Web panel را ببینید.

Meridian نسخه‌های Remnawave را که تست کرده است pin می‌کند. meridian fleet upgrade سرورهای شما را بدون انتظار برای به‌روزرسانی Meridian به جدیدترین نسخه Remnawave در همان major می‌برد. اگر خودتان Remnawave را ارتقا دهید، Meridian آن را downgrade نمی‌کند.