آنچه relay حل میکند
Section titled “آنچه relay حل میکند”زمانی که IP سرور خروجی مسدود میشود، کاربران دسترسی را از دست میدهند. relay به آنها یک نقطه ورود خانگی میدهد که مسدود کردن آن سختتر است:
کلاینت → Relay (IP خانگی) → سرور خروجی (خارج) → اینترنتسانسورکنندگان ترافیک را به IP خانگی میبینند. relay TCP خام را به خروجی فوروارد میکند؛ رمزگذاری انتهایی بین کلاینت و خروجی است، بنابراین relay هرگز plaintext را نمیبیند.
چگونه relays کار میکند
Section titled “چگونه relays کار میکند”relay Realm را اجرا میکند، یک TCP forwarder کوچک و بدون کپی. روی درگاه 443 (قابل تنظیم) گوش میدهد و به listener Reality خروجی فوروارد میکند. Docker و پنلی روی relay اجرا نمیشود.
Relays ترافیک Reality را حمل میکند. XHTTP، WSS و Hysteria2 روی آدرس و دامنه خود خروجی میمانند و در subscription به عنوان جایگزینها میمانند.
استقرار relay
Section titled “استقرار relay”اولین استقرار خروجی، سپس relay آن را به آن اشاره کنید:
meridian relay add 203.0.113.10 --exit 198.51.100.10Meridian relay را به توپولوژی اضافه میکند و اعمال میکند:
- سرور relay را آماده میکند (بستهها، BBR، سختسازی SSH، firewall که تنها SSH و درگاه relay را باز میکند)
- Realm را نصب میکند (نسخهپین، SHA256-verified) به عنوان سرویس systemd
- relay را به listener Reality خروجی اشاره میکند
- relay را در subscription هر کلاینت منتشر میکند
پرچمها
Section titled “پرچمها”| پرچم | پیشفرض | توضیح |
|---|---|---|
--exit/-e EXIT | (برای deploy مورد نیاز) | سرور خروجی IP یا نام |
--name NAME | (خودکار) | نام دوستانه برای relay (مثلاً ru-moscow) |
--port/-p PORT | 443 | درگاه گوشکننده روی سرور relay |
--sni HOST | هدف خروجی | هدف پنهانسازی Reality برای این relay؛ برای استفاده از خروجی حذف کنید |
--user/-u USER | root | کاربر SSH روی relay |
--ssh-port PORT | 22 | درگاه SSH روی سرور relay |
--yes/-y | تأیید prompts را پرش کنید |
مثال با تمام گزینهها
Section titled “مثال با تمام گزینهها”meridian relay add 203.0.113.10 --exit 198.51.100.10 --name ru-moscow \ --port 443 --sni dl.google.com --user ubuntu --ssh-port 2222 --yesچگونه کلاینتها متصل میشوند
Section titled “چگونه کلاینتها متصل میشوند”کلاینتهای موجود relay را در بازخوانی subscription بعدی خود دریافت میکنند و صفحات اتصال آن را فهرست میکند. کلاینتهای جدید آن را خودکار میگیرند:
meridian client add alice # relay شامل استمدیریت relays
Section titled “مدیریت relays”meridian relay list # تمام relaysmeridian relay list --exit 198.51.100.10 # relays برای یک خروجیhopهای relay را بررسی کنید — هر سرویس Realm در حال اجرا است، هر hop را به حالت بعدی میرساند و ورود عمومی اتصالات را میپذیرد — سپس ترافیک واقعی را از طریق کل مسیر آزمایش کنید:
meridian check 203.0.113.10meridian testبررسی همچنین هر leg را اندازهگیری میکند: از هر hop آن آدرس camouflage خروجی را از طریق hop بعدی دانلود میکند، SNIهای هم را که کلاینتها ارسال میکنند ارسال میکند و وقت اتصال، زمان تا اولین بایت و چند بایت به دست آمد را گزارش میکند. transfer که بین تقریباً 8 و 32 KB منجمد شود امضای throttling روی آن leg است و بهعنوان هشدار گزارش میشود؛ معمولترین fix relay host روی provider دیگر است (شبکهٔ دیگر، یا ASN). اگر صفحهٔ خانگی سایت camouflage کوچکتر از 32 KB باشد، بررسی leg نتیجه غیرقطعی است تا اینکه پاس نشود.
برای دادن SNI استتار دیگری به یک relay، مثلاً وقتی meridian test --probe گزارش میدهد SNI آن مسدود است، آن را درجا تغییر دهید. Meridian بررسی میکند که exit به سایت جدید میرسد، بررسی را نشان میدهد و اعمال میکند؛ نام قدیمی بیدرنگ از کار میافتد و برنامهها در تازهسازی بعدی اشتراک (هر ۶ ساعت) یا تازهسازی دستی جابهجا میشوند. SNI خود exit را بدهید تا relay دوباره از exit پیروی کند:
meridian relay sni 203.0.113.10 dl.google.comبرای بازنشستگی relay، زنجیرهای را از طریق آن بردارید. Meridian نشان میدهد که چه چیزی حذف خواهد شد، تأیید میخواهد و سرویس Realm، قوانین firewall و نقاط ورود منتشر شده را تمیز میکند؛ کلاینتهای موجود relay را در بعدی تازهسازی اشتراک خود از دست میدهند:
meridian relay remove 203.0.113.10relays متعدد
Section titled “relays متعدد”چند relay را به یک خروجی الحاق کنید، برای نمونه در شهرها یا شبکههای مختلف:
meridian relay add 203.0.113.10 --exit 198.51.100.10 --name ru-moscowmeridian relay add 203.0.113.11 --exit 198.51.100.10 --name ru-spbکلاینتها هر relay را در subscription خود دریافت میکنند. برای زنجیرههای relay با بیش از یک hop، از meridian setup استفاده کنید.
Whitelists موبایل
Section titled “Whitelists موبایل”در برخی محدودیتهای اینترنت موبایل در روسیه، operators تنها لیست تأییدشدهای از سایتها و آدرسها را عبور میدهند. گزارشها بسته به operator، region و هفته متفاوت است و هیچ operator لیست خود را منتشر نمیکند. Meridian whitelists را تشخیص نمیدهد یا track نمیکند؛ این بخش آنچه را شما میتوانید امروز تنظیم کنید و آنچه manual میماند را پوشش میدهد.
آنچه deployers گزارش میدهند
Section titled “آنچه deployers گزارش میدهند”- شبکهها متفاوت هستند. برخی به نظر تنها نام سرور (SNI) را که اتصال اعلام میکند نگاه میکند. دیگران همچنین IP مقصد را بررسی میکند. جایی که تنها نام بررسی میشود، یک مسیر Reality مستقیم با نام مجاز میتواند عبور کند. جایی که IP همچنین بررسی میشود، اولین hop باید بر روی لیست آدرس باشد.
- آدرسهای cloud داخلی معمولترین اولین hop است. نه هر آدرس از یک provider فهرستشده است: افراد یک subnet از محدوده provider کنندهٔ یکی فهرستشده را توصیف میکند در حالی که دیگری از همان provider نیست. Providers همچنین ممکن است مشتریان خصوصی را محدود کند، محدود کنید که چند بار شما میتواند سرور را دوباره ایجاد کنید، یا bandwidth را shape کنید.
- آدرسهای CDN خارجی عموماً روی شبکههای موبایل مجاز نیستند. domain mode را از طریق Cloudflare بهعنوان fallback برای اتصالات خانگی رفتار کنید، نه بهعنوان whitelist answer.
- relay-to-exit link همچنین میتواند مختل شود. relay که به کاربران میرسد همچنان میتواند اتصال خود را به exit خارجی از دست بدهد.
relay بر روی آدرس مجاز
Section titled “relay بر روی آدرس مجاز”سرور کوچک را در یک provider داخلی اجاره کنید که آدرس آن در whitelist شبکه موبایل کاربران شما مجاز باشد. لیستهای نگهداریشدهٔ جامعهای از محدودههای مجاز وجود دارند، اما تنها test از یک اتصال موبایل در حالی محدودیتها فعال است ثابت میکند. سپس آن را بهعنوان relay اضافه کنید و یک نام مجاز بدهید:
meridian relay add 203.0.113.10 --exit 198.51.100.10 --name ru-mobile --sni allowed.example.comبا --sni، تنها ورودی این relay در اشتراک آن نام را اعلام میکند. Meridian به relay یک شنوندهٔ اختصاصی روی exit میدهد که تنها از آخرین hop آن در دسترس است، و یک شنوندهٔ Reality (با همان کلیدها) که آن نام را تقلید میکند. تنها آن نام را به Reality میفرستد و بقیه را به همان سایت، پس proberی که بدون کلید معتبر به relay برسد گواهی واقعی سایت را میبیند، نه پاسخ proxy. هدف استتار خود exit و ورودیهای دیگر آن تغییر نمیکنند. exit باید با TLS 1.3 و HTTP/2 به آن نام برسد؛ بعداً با meridian relay sni RELAY NEW_SNI آن را تغییر دهید.
سپس relay را بررسی کنید و از شبکهای که مهم است تست کنید:
meridian check 203.0.113.10meridian testmeridian test از ماشین خود نمیتواند بگوید چه شبکهٔ موبایل whitelistشده مجاز است. بر روی دستگاهی واقعی روی آن شبکه امتحان کنید.
SNI خروجی انتخاب کنید
Section titled “SNI خروجی انتخاب کنید”--sni روی meridian deploy و meridian node add hدف camouflage برای مسیر Reality مستقیم exit را تنظیم میکند. هدف باید سایتی باشد که exit میتواند با TLS 1.3 به آن دسترسی داشته باشد، و deploy ترافیق واقعی از طریق آن بررسی کرده و متوقف میشود اگر هیچ کدام عبور نکند. قبل از deploy، candidate را با meridian check IP --sni HOST بررسی کنید. بر روی شبکهای که تنها نامها را بررسی میکند، نام مجاز ممکن است مسیر مستقیم را عبور دهد، اما آیا نام کار میکند وابسته به operator است، بنابراین هر یک را تست کنید.
آنچه Meridian انجام نمیدهد
Section titled “آنچه Meridian انجام نمیدهد”- آن بگوید آیا IP relay بر روی هر operator’s list است یا محدودیتها فعال هستند.
- Fronting را تنظیم کنید از طریق CDN داخلی. Domain mode برای Cloudflare built و tested است.
- relay تنها Reality را حمل میکند. XHTTP، WSS و Hysteria2 روی exit میمانند.
- از طریق خدمات calling یا messaging تابع شخص سوم tunnel نمیکند.
رفع مشکلات
Section titled “رفع مشکلات”تضاد درگاه
Section titled “تضاد درگاه”سرویس دیگری از درگاه گوشکننده روی relay استفاده میکند. با ss -tlnp sport = :443 بررسی کنید و آن را متوقف کنید یا درگاه دیگری با --port 8443 انتخاب کنید.
firewall مسدود میکند
Section titled “firewall مسدود میکند”مطمئن شوید درگاه relay در firewall cloud provider یا security group باز است، نه تنها در UFW.
خروجی دسترسپذیر نیست
Section titled “خروجی دسترسپذیر نیست”relay باید به درگاه Reality خروجی برسد. meridian test را برای بررسی مسیر انتهایی اجرا کنید و meridian check EXIT را برای بررسی خروجی خود اجرا کنید.
سرویس relay اجرا نمیشود
Section titled “سرویس relay اجرا نمیشود”روی سرور relay، سرویسهای forwarder را فهرست کنید و لاگ خود را بخوانید. میزبانهای relay نامهای خنثی استفاده میکند (netfwd-* units، /etc/netfwd/ configs) تا هیچ چیزی روی آنها Meridian، Realm یا relay را نامبرد:
systemctl list-units 'netfwd-*'journalctl -u 'netfwd-*' --no-pager -n 20