هنگام تنظیم VLESS یا VMess مدام به سه فیلد شبیه به هم برمیخورید: آدرس، SNI (در بعضی کلاینتها serverName) و دامنه پوششی یا Host. اینها در لایههای متفاوتی کار میکنند، مقدارشان ممکن است یکی باشد یا نباشد و باید جداگانه فهمیده شوند.
آدرس: واقعاً به کجا وصل میشوید
مقصد اتصال TCP. میتواند IP یا نام دامنه باشد؛ اگر دامنه باشد کلاینت اول آن را حل میکند. برای سروری که پشت CDN است، معمولاً نقطه پایانی CDN در این فیلد مینشیند، نه سرور خودتان.
پیشنهاد همکاریلینک اشتراک را از کجا بیاوریم؟سرویس همکار ما هنگام ثبتنام ۱ گیگابایت ترافیک پرسرعت هنگکنگ رایگان میدهد.دریافت سرور پرسرعتSNI: نامی که در دستدادن TLS اعلام میشود
در ClientHello یک فیلد بدون رمزنگاری وجود دارد که میگوید کدام نام دامنه را میخواهید و سرور بر اساس آن گواهی را انتخاب میکند. اگر SNI با گواهی نخواند، دستدادن همانجا شکست میخورد و در گزارش handshake failure یا عدم تطابق نام گواهی میبینید.
نکته مهم: SNI رمزنگارینشده میرود، پس تجهیزات میانی میبینند چه دامنهای خواستهاید. همین دیدهشدن دستاویز بسیاری از سامانههای مسدودسازی است و دلیل اینکه REALITY نام یک سایت واقعی را قرض میگیرد.
Host: دامنه در لایه HTTP
فقط ترابریهای WebSocket و HTTP این فیلد را دارند و در سرآیند درخواست HTTP قرار میگیرد. CDN با خواندن آن تصمیم میگیرد از کدام مبدأ محتوا بگیرد؛ پس پشت CDN مقدار Host باید همان دامنهای باشد که آنجا تعریف کردهاید. اشتباهش یعنی CDN پیش از رسیدن درخواست به سرور شما 404 یا 502 برمیگرداند.
ترکیبهای رایج
- اتصال مستقیم به سرور خودتان: آدرس = IP سرور، SNI = دامنه گواهی، Host معمولاً همان SNI.
- پشت CDN: آدرس = IP منتخب CDN یا نام میزبان CDN، SNI = دامنه شما، Host = دامنه شما.