رفتن به محتوا

افزونهٔ Xray

افزونه Xray-core رسمی را کنار نود Veilway اجرا می‌کند. پیش‌فرض خاموش است: تا نصبش نکنید چیزی نصب یا اجرا نمی‌شود.

جای Xray، 3x-ui یا v2ray را نمی‌گیرد. به کسانی که برنامهٔ استاندارد Xray دارند اجازه می‌دهد از نود شما وصل شوند. ترافیکشان مثل بقیهٔ ترافیک Veilway است: آمار و سهمیهٔ همان کاربر، خروجی‌ها و قواعد نود.

این‌ها را روی سرور با دسترسی root اجرا کنید:

sudo bash veilway.sh addon xray install
sudo bash veilway.sh addon xray remove
sudo bash veilway.sh addon xray status

install بستهٔ Xray-core را برای پردازندهٔ شما دانلود می‌کند (x86_64 یا arm64) و SHA-256 آن را با مقدار پین‌شده در veilway.sh مقایسه می‌کند. اگر فرق داشته باشد، چیزی نصب نمی‌شود. فایل اجرایی در پوشه‌ای می‌رود که فقط root در آن می‌نویسد. Veilway پیش از هر شروع آن را با نسخهٔ پین‌شدهٔ خودش می‌سنجد و اگر نخواند، قبولش نمی‌کند.

بعد از install، نود فقط وقتی Xray را اجرا می‌کند که پیکربندی‌اش ورودی Xray داشته باشد. آن را در پنل، در صفحهٔ Inbounds بسازید.

remove میزبان Xray را متوقف می‌کند، فایل اجرایی و فایل‌های یونیت را پاک می‌کند و نود را دوباره راه می‌اندازد، که Xray را متوقف می‌کند. ورودی‌هایی که ساخته‌اید تا وقتی خودتان پاک نکنید در پیکربندی می‌مانند.

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

پنل سه نوع ورودی Xray می‌سازد:

پروتکل رمزنگاری اعتبار هر کاربر
VLESS TLS، با گواهی خودتان یک UUID
Trojan TLS، با گواهی خودتان یک گذرواژه
Shadowsocks 2022 رمزنگاری خودش (بدون گواهی) یک کلید

هر کاربر برای هر ورودی یک اعتبار می‌گیرد. در صفحهٔ کاربر، پیوندهای Xray پیوند هر ورودی (vless://، trojan:// یا ss://) را هم به‌صورت متن قابل کپی و هم کد QR نشان می‌دهد.

آزمون خود Xray-core را به‌عنوان کلاینت با هر سه پیوند امتحان کرده است. برنامه‌های دیگر v2ray و Xray از همین نوع پیوندها استفاده می‌کنند، اما اینجا امتحان نشده‌اند.

ترافیک کلاینت Xray مثل ترافیک تونل است:

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

UDP با هر سه پروتکل کار می‌کند (QUIC، DNS روی UDP، تماس‌ها، بازی‌ها). VLESS و Trojan UDP را داخل جریان خودشان می‌برند. ورودی Shadowsocks روی UDP هم گوش می‌دهد، با همان شمارهٔ پورت TCP. آن پورت را برای UDP هم در فایروال باز کنید. ورودی دیگری از نود (ترنسپورت udp یا udp-obfs) نباید از آن استفاده کند، وگرنه پیکربندی رد می‌شود.

هر مقصد UDP یک کاربر، جریانی مثل بقیه است. نود مقصدهایی مثل loopback را رد می‌کند، قواعد خروجی را انتخاب می‌کنند، خروجی‌ها و سهمیهٔ کاربر اعمال می‌شوند و بایت‌ها برای کاربر و خروجی شمرده می‌شوند. UDP به پورت ۵۳ از قاعدهٔ تونل پیروی می‌کند: تا وقتی dns.hijack روشن است (پیش‌فرض)، حل‌کنندهٔ خود نود با مجموعهٔ DNS کاربر به هر پرسش DNS جواب می‌دهد، به هر نشانی که فرستاده شده باشد. سقف‌ها: ۳۲ ارتباط UDP برای هر کاربر و ۴۰۹۶ در کل، ۶۴ جریان در هر ارتباط، ۲۵۶ جریان UDP برای هر کاربر، و سقف جریان‌های کاربر، که UDP آن را با اتصال‌های TCP تقسیم می‌کند. بستهٔ خراب یا تکه‌تکه رها و شمرده می‌شود. اگر بالادست SOCKS5 خروجی UDP را منتقل نکند، سیاست unsupported.udp همان خروجی تصمیم می‌گیرد. نود هر دقیقه بالادست را دوباره امتحان می‌کند و تغییر را در گزارش می‌نویسد.

در پنل، Inbounds را باز کنید، Add Xray inbound را بزنید، پروتکل را انتخاب کنید و پر کنید:

  • برچسب: نام کوتاه ورودی، مثل vless-443.
  • پورت: پورت TCP که Xray روی آن گوش می‌دهد. در فایروال باز کنید، و برای Shadowsocks UDP را هم.
  • فایل گواهی و فایل کلید (VLESS و Trojan): مسیر آن‌ها روی نود، مثلاً فایل fullchain گواهی. Shadowsocks هیچ‌کدام را نمی‌خواهد.
  • وب‌سرور فریب (VLESS و Trojan): نشانی وب‌سرور خودتان، مثلاً http://127.0.0.1:8080. لازم است. اگر خالی باشد، پنل از وب‌سرور فریب ترنسپورت tls نود استفاده می‌کند.
  • میزبان در پیوندها (اختیاری): نام یا نشانی‌ای که پیوندها می‌دهند. خالی یعنی اولین نشانی عمومی نود.

اتصالی که به پورت VLESS یا Trojan برسد و اعتبار کاربر نداشته باشد، به وب‌سرور شما می‌رود، پس کسی که پورت را بررسی کند یک سایت معمولی می‌بیند. آزمون این را روی هر دو پورت بررسی کرده است. Shadowsocks وب‌سرور فریب ندارد و آزمون نمی‌سنجد که غریبه از پورت آن چه می‌گیرد.

Xray روی همان نشانی پروفایل‌های بومی Veilway جواب می‌دهد و هر کس آن نشانی را پیدا کند می‌تواند بفهمد پروکسی اجرا می‌شود. پس پروفایل‌های بومی روی آن نشانی در اشتراک‌ها رتبهٔ قابل تشخیص می‌گیرند و پنل پیش از ساختن ورودی این را می‌گوید. آگاهانه تصمیم بگیرید. از v0.2.4 فقط پروفایل‌هایی که با ورودی Xray نشانی مشترک دارند محدود می‌شوند. ورودی‌ای که روی همهٔ نشانی‌ها گوش می‌دهد (پیش‌فرض) همه را محدود می‌کند. ورودی روی یک IP جدای سرور، با نام میزبان خودش، پروفایل‌های نشانی‌های دیگر را دست نمی‌زند. نامی که پنل نتواند حل کند، یا به نشانی Xray برسد، مشترک حساب می‌شود.

در صفحهٔ کاربر، اعتبار جدید Xray در همهٔ ورودی‌های Xray اعتبار تازه می‌سازد. پیوندهای قدیمی بعد از اعمال تغییر در نود از کار می‌افتند. پیوند اشتراک و دستگاه‌ها همان می‌مانند، پس برنامه‌های Veilway اثری نمی‌بینند. بازنشانی پیوند اشتراک هم اعتبار Xray را تازه می‌کند.

سهمیه، غیرفعال کردن و راه‌اندازی مجدد

Section titled “سهمیه، غیرفعال کردن و راه‌اندازی مجدد”
  • کاربری که از سهمیه گذشته اتصال Xray را از دست می‌دهد و با بالا رفتن سهمیه برمی‌گردد. آزمون این را بررسی کرده است.
  • کاربر غیرفعال هم از دست می‌دهد و با فعال شدن برمی‌گردد. آزمون این را بررسی کرده است.
  • ساختن یا حذف ورودی، تغییر کاربران آن و ساختن اعتبار جدید، Xray را کوتاه دوباره راه می‌اندازند. اتصال‌های آن ورودی قطع می‌شوند و برنامه دوباره وصل می‌شود.
  • Xray با کاربر سیستمی خودش، veilway-xray، اجرا می‌شود که نمی‌تواند وارد سیستم شود.
  • یک فرایند کوچک میزبان، veilway xray-host، Xray را زیر سرویس خودش، veilway-xray.service، راه می‌اندازد. نود پیکربندی Xray را از راه سوکتی که فقط خودش می‌تواند باز کند به میزبان می‌فرستد. با توقف نود، Xray هم متوقف می‌شود.
  • Xray هیچ توانایی (capability) ندارد، جز حق اتصال به پورت زیر ۱۰۲۴، و فقط وقتی یکی از ورودی‌هایش چنین پورتی بگیرد.
  • Xray نمی‌تواند پیکربندی نود (با کلیدها)، وضعیت مصرف یا سوکت کنترل را بخواند. آزمون این را از داخل کاربر و mountهای خود Xray بررسی کرده است.
  • Xray با محیط خالی اجرا می‌شود و نمی‌تواند سطح دسترسی بگیرد.
  • Xray گزارش دسترسی (access log) ندارد و نشانی‌هایی که می‌نویسد پنهان‌اند. آزمون بررسی کرده که نشانی کلاینت به ژورنال نمی‌رسد.
  • سرویس میزبان سقف حافظهٔ ۱ گیگابایت دارد.
  • ترافیک هر کاربر از Xray با یک هاپ SOCKS محلی روی 127.0.0.1 بیرون می‌آید که نود ارائه می‌دهد. این هاپ هر اتصال و هر مقصد UDP را با اعتبار کاربر، سهمیه، قواعد، خروجی‌ها و شمارنده‌ها می‌سنجد، مثل تونل.
  • یونیت جلوی اتصال Xray به شبکه را نمی‌گیرد، چون سرورهای اتصال‌های بیرونی Xray می‌توانند هر جا باشند. هاپ ترافیک کاربران شما را زیر قواعد نود نگه می‌دارد. یونیت باگ Xray را به نشانی یک ارائه‌دهنده محدود نمی‌کند. «اتصال‌های بیرونی Xray» را در مدل تهدید ببینید.

این افزونه جهت دیگر هم کار می‌کند. از v0.2.18 نود می‌تواند ترافیک یک خروجی را از راه سرور VLESS، VMess، Trojan یا Shadowsocks یک ارائه‌دهندهٔ دیگر بیرون بفرستد، تا سروری که اجاره کرده‌اید خروجی شود. آن را در زبانهٔ اتصال‌های بیرونی به‌عنوان سرور Xray اضافه کنید. راهنمای پنل و آموزش را ببینید.

  • فقط نودهای لینوکسی. میزبان افزونه روی لینوکس اجرا می‌شود.
  • همان نصب. sudo bash veilway.sh addon xray install کاربر نود را در گروه veilway-xray هم می‌گذارد تا بتواند از سوکت‌هایی که Xray برای اتصال‌های بیرونی می‌سازد استفاده کند، و نودِ در حال اجرا را دوباره راه می‌اندازد. sudo bash veilway.sh update برای نود دارای افزونه همین کار را می‌کند. نودی که پیش از v0.2.18 نصب شده یک بار update یا install لازم دارد.
  • بدون افزونه هر خروجی روی اتصال بیرونی Xray از کار افتاده است و دلیلش را می‌گوید. چیزی دورش نمی‌چرخد.
  • تغییر Xray را کوتاه دوباره راه می‌اندازد. کاربران ورودی‌های Xray لحظه‌ای قطع می‌شوند و دوباره وصل می‌شوند.
  • نام ارائه‌دهنده بدون رمزنگاری حل می‌شود. نود آن را با dns.servers و UDP ساده می‌پرسد. برای پنهان ماندن، در نشانی پراکسی IP ارائه‌دهنده را بنویسید.

veilway doctor برای پیکربندی دارای اتصال بیرونی Xray، افزونه و پوشهٔ سوکت‌ها را بررسی می‌کند.

  • UDP برای هر سه پروتکل منتقل می‌شود، اما اگر خروجی UDP نداشته باشد و سیاستش رد کند، جریان UDP تمام می‌شود. نود نام‌هایی را که بستهٔ UDP می‌خواهد حل می‌کند، مثل TCP.
  • بدون VMess و Reality روی ورودی‌های Xray. اتصال‌های بیرونی Xray هر دو را می‌فهمند.
  • بدون خروجی‌های l3 و chain برای کاربران Xray. ترافیک Xray از خروجی‌های netstack کاربر استفاده می‌کند.
  • هر تغییر Xray را کوتاه دوباره راه می‌اندازد.
  • اندروید هنوز به پیوندهای Xray وصل نمی‌شود. دسکتاپ از v0.2.0-alpha وصل می‌شود.
  • هنوز امتحان نشده: حذف افزونه با remove و وب‌سرور فریب برای Shadowsocks.