VPN خودمیزبان و متن‌باز

اینترنت امن را با کسانی که برایتان عزیزند به اشتراک بگذارید

با یک دستور، یک VPS خام به سرور VPN مقاوم‌شده‌ای تبدیل می‌شود که تشخیصش از HTTPS معمولی دشوار است؛ همراه با پنل وب برای شما و صفحهٔ اتصال تک‌لمسی برای هر نفر.

صفحهٔ اتصال — آنچه هر نفر دریافت می‌کند
آنچه هر نفر دریافت می‌کند — امتحان صفحهٔ اتصال · امتحان پنل وب

نحوهٔ کار

دو دستور تا یک VPN آماده

به یک VPS با Debian یا Ubuntu (مدل ۵ دلار در ماه کافی است) و یک ترمینال روی رایانه‌تان نیاز دارید. بقیه را Meridian انجام می‌دهد.

کل راه‌اندازی با meridian setup از ابتدا تا انتها: ۳٫۵ دقیقه، به انگلیسی با زیرنویس. دانلود ویدیو
مرحلهٔ ۱ — نصب
curl -sSf https://getmeridian.org/install.sh | bash
سپس
مرحلهٔ ۲ — راه‌اندازی
meridian setup

ویزارد چند سؤال ساده می‌پرسد، یک خلاصه برای بازبینی نشان می‌دهد و سپس سرور شما را راه‌اندازی می‌کند. برای یک سرور بدون هیچ سؤالی، meridian deploy IP را اجرا کنید — مرجع CLI را ببینید.

خروجی meridian deploy در ترمینال

پشت صحنه چه اتفاقی می‌افتد

  1. نصب سرویس کنترل و پنل وب همراه با agent گره که Xray را اجرا می‌کند — بدون Docker و بدون پنل شخص ثالث

  2. ساخت جفت‌کلید x25519 — کلیدهای رمزنگاری یکتا برای احراز هویت Reality

  3. مقاوم‌سازی سرور — UFW فقط پورت SSH شما، پورت 443 (TCP و UDP) و پورت 80 را برای گواهی‌ها باز می‌کند؛ ورود SSH فقط با کلید، fail2ban و کنترل ازدحام BBR

  4. پیکربندی VLESS+Reality روی TCP 443، جایی که پروب‌ها گواهی یک وب‌سایت واقعی را می‌بینند

  5. افزودن XHTTP و Hysteria2 — XHTTP از طریق nginx روی همان پورت، و Hysteria2 روی UDP 443 با مبهم‌سازی salamander

  6. نمایش کد QR و صفحهٔ اتصال، پس از آنکه ترافیک واقعی از اشتراک جدید عبور کرد

اجرای دوباره بی‌خطر است. اجرای دوم اعتبارنامه‌ها و کلیدها را نگه می‌دارد و استقرار را ادامه می‌دهد یا در همان‌جا به‌روز می‌کند.

ببینید

آنچه شما و کاربرانتان دریافت می‌کنید

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

صفحهٔ اتصال

هر نفر لینک اشتراک خود را در مرورگر باز می‌کند: پلتفرم و برنامه را انتخاب می‌کند، اتصال را با یک لمس یا کد QR اضافه می‌کند، ترافیک و تاریخ انقضایش را می‌بیند و راهنمای ساده را به چهار زبان می‌خواند.

صفحهٔ اتصال را امتحان کنید

پنل وب

با اجرای meridian panel پنل مدیریت (کنسول مالک) خود را باز کنید. از هر مرورگری افراد را اضافه کنید، لینک و کد QR بفرستید، تاریخ انقضا، سقف ترافیک و سقف دستگاه تعیین کنید، یادداشت و برچسب خصوصی بگذارید، اعلان همگانی منتشر کنید و توکن‌های API بسازید.

پنل وب را امتحان کنید

سازندهٔ دستور

دستور خود را بسازید

گزینه‌ها را انتخاب کنید و دستور کامل را کپی کنید. شامل استقرار، رله‌ها، بررسی‌ها، اسکن سایت‌های استتار، عیب‌یابی و حذف است.

استقرار Reality، XHTTP و Hysteria2 روی یک سرور. سرویس کنترل، پنل وب، nginx، فایروال و TLS را راه‌اندازی می‌کند.

IP سرور، نام یک سرور ذخیره‌شده، یا «local» برای اجرا روی خود سرور. برای اینکه از شما پرسیده شود، خالی بگذارید.
پیش‌فرض: کاربر ذخیره‌شده، وگرنه root. کاربران غیر root به sudo بدون رمز عبور نیاز دارند.
پیش‌فرض: پورت ذخیره‌شده، وگرنه 22.
اختیاری. XHTTP را به دامنهٔ شما منتقل می‌کند و WSS اضافه می‌کند؛ هر دو می‌توانند از CDN Cloudflare عبور کنند.
سایتی که Reality از آن تقلید می‌کند. روی خودکار بگذارید تا deploy سایتی را که از سرور شما کار می‌کند انتخاب کند، یا با زبانهٔ اسکن SNI یکی پیدا کنید.
نام اولین کسی که وصل می‌شود. پیش‌فرض: «default».
برچسبی که در صفحه‌های اتصال نشان داده می‌شود.
یک اموجی یا نشانی تصویر برای صفحهٔ اتصال.
طرح رنگی صفحهٔ اتصال.
دستور
meridian deploy

اولین بار است؟ فقط meridian setup را اجرا کنید — ویزارد هر چیزی را که لازم دارد می‌پرسد.

فناوری

چگونه از شناسایی دوری می‌کند

OpenVPN و WireGuard امضای ترافیکی قابل تشخیص دارند. اتصال VLESS+Reality از HTTPS معمولی به یک وب‌سایت واقعی به‌سختی تشخیص داده می‌شود.

بازرسی عمیق بسته (DPI)

DPI الگوهای ترافیک را تحلیل می‌کند تا پروتکل‌های VPN و پراکسی را شناسایی کند. OpenVPN و WireGuard دست‌دادن‌هایی (handshake) دارند که شناسایی و مسدود کردنشان آسان است.

VLESS+Reality داخل یک اتصال استاندارد TLS 1.3 روی پورت 443 اجرا می‌شود، پس DPI چیزی می‌بیند که شبیه HTTPS معمولی به سایت استتار است. هر سرور XHTTP و Hysteria2 را هم ارائه می‌دهد، بنابراین اگر یک روش مسدود شود، روش‌های دیگر همچنان کار می‌کنند.

کاوش فعال

سانسورگران به سرورهای مشکوک وصل می‌شوند و می‌کوشند اثرانگشت آن‌ها را بگیرند. اگر سرور متفاوت از وب‌سایتی که ادعا می‌کند پاسخ دهد، مسدود می‌شود.

Reality هویت TLS یک وب‌سایت واقعی را قرض می‌گیرد: به‌طور پیش‌فرض سایتی که نزدیک سرور شما میزبانی می‌شود، یا www.google.com. پروبی که کلید شما را ندارد به همان سایت منتقل می‌شود و گواهی اصلی آن را می‌بیند. فقط کلاینت‌هایی که کلید شما را دارند وارد تونل VPN می‌شوند.

اثرانگشت TLS

هر کلاینت TLS یک اثرانگشت یکتای «Client Hello» می‌فرستد. سانسورگران اتصال‌هایی را که اثرانگشتشان با برنامهٔ ادعاشده نمی‌خواند علامت‌گذاری می‌کنند.

برنامه‌های کلاینت با uTLS همان Client Hello مرورگر Chrome را می‌فرستند. Meridian برای هر ورودی Reality و XHTTP یک نسخهٔ Firefox هم منتشر می‌کند، پس اگر سانسورگران یک اثرانگشت را علامت بزنند، دیگری همچنان کار می‌کند.

اتصال

اسکن کنید و وصل شوید

پس از استقرار، هر نفر یک صفحهٔ اتصال با کدهای QR و افزودن تک‌لمسی دریافت می‌کند. لینک را برایش بفرستید — با یک ضربه وصل می‌شود.

صفحه‌های اتصال ابتدا همین برنامه‌ها را فهرست می‌کنند و برای هر پلتفرم به برنامه‌های دیگر لینک می‌دهند. دیدن نمونه.

تاریخ و ساعت خودکار را روی همهٔ دستگاه‌ها روشن کنید. اگر ساعت دستگاه اشتباه باشد، ممکن است اتصال برقرار نشود.

معماری

زیر کاپوت

معماری Meridian: nginx اتصال‌های TCP 443 را بر اساس SNI به Xray Reality، XHTTP و صفحه‌های اتصال هدایت می‌کند؛ Hysteria2 روی UDP 443 گوش می‌دهدInternetnginx stream — SNI routerTCP 443Xray Hysteria2UDP 443 (salamander)Xray Realitynginx http :8443SNI = camouflageno SNI / server IPConnection pagesControl serviceXray XHTTPXray WSSdomain modenginx ACMETCP 80
حالت مستقل (بدون دامنه)

nginx مالک پورت TCP 443 است و اتصال‌ها را با ماژول stream خود بر اساس SNI در TLS هدایت می‌کند. اتصال‌های Reality به Xray می‌روند. بقیه به ماژول http در nginx می‌رسند که صفحه‌های اتصال، اشتراک‌ها و XHTTP را روی HTTPS ارائه می‌دهد، با یک گواهی کوتاه‌مدت Let's Encrypt برای IP سرور (صادرشده با acme.sh). Hysteria2 روی UDP 443 با مبهم‌سازی salamander گوش می‌دهد.

سرویس کنترل Meridian پشت nginx روی یک مسیر مخفی قرار دارد: کاربران شما را نگه می‌دارد، اشتراک‌هایشان را ارائه می‌کند و پنل وب را بدون نیاز به تونل SSH روی HTTPS در دسترس قرار می‌دهد. یک agent کوچک روی هر سرور خودش به آن وصل می‌شود، پس گره‌ها پورت اضافه‌ای باز نمی‌کنند.

حالت دامنه (جایگزین CDN)

با --domain، nginx برای دامنهٔ شما گواهی Let's Encrypt می‌گیرد و آن SNI را به مسیرهای دامنه هدایت می‌کند. XHTTP به دامنه منتقل می‌شود و VLESS+WSS اضافه می‌شود. وقتی Cloudflare دامنه را پراکسی کند، هر دو از CDN عبور می‌کنند و حتی اگر IP سرور شما مسدود شود کار می‌کنند. سرویس کنترل و صفحه‌های اتصال روی گواهی IP می‌مانند.

حالت رله (نقطهٔ ورود داخلی)

یک فورواردر TCP از نوع Realm روی سروری داخل کشور شما، اتصال‌ها را به سرور خروجی شما در خارج منتقل می‌کند. رله‌ها فقط Reality را حمل می‌کنند؛ XHTTP، WSS و Hysteria2 همچنان مستقیم به سرور خروجی وصل می‌شوند. رمزنگاری سرتاسری بین برنامه و سرور خروجی برقرار است، پس رله هرگز متن آشکار را نمی‌بیند.

با meridian relay add RELAY_IP --exit EXIT یکی اضافه کنید. اشتراک‌ها و صفحه‌های اتصال ورودی‌های رله را خودکار برمی‌دارند.

آمادهٔ شروع هستید؟

Meridian را نصب کنید، سرور VPN خود را مستقر کنید و دسترسی را با کسانی که لازم دارند به اشتراک بگذارید. استقرار معمولاً ۳ تا ۱۰ دقیقه طول می‌کشد.