📄 محتوای کامل
اگر در جستجوی یک راهنمای درست برای Hysteria2 و TUIC هستید، احتمال زیاد با چند سوال روبه رو شده اید: این دو دقیقا چه هستند؟ چه فرقی با VPN دارند؟ کدام یک روی لینوکس نصب می شود؟ برای راه اندازی به دامنه، گواهی TLS و پورت UDP نیاز داریم یا TCP؟ و اگر اتصال برقرار نشد، از کجا باید عیب یابی را شروع کرد؟
در این راهنما، اول تفاوت این دو را روشن می کنیم و بعد هر کدام را جداگانه روی یک سرور لینوکسی نصب می کنیم. مثال ها بر پایه دامنه و گواهی معتبر هستند؛ آدرس ها، گذرواژه ها و پورت های نمونه را با اطلاعات خودتان عوض کنید. نگارنوین سرویس VPN ارائه نمی کند و این مقاله فقط برای آموزش مدیریت نرم افزار روی سروری است که مالک آن هستید یا اجازه مدیریت آن را دارید.
یک نکته مهم پیش از شروع: خود VPN یک فناوری اتصال است و وضعیت قانونی آن در همه کشورها و برای همه کاربردها یکسان نیست. مقررات محل استفاده، نوع سرویس و شرایط ارائه دهنده سرور را بررسی کنید. سرویس های ناشناس هم ممکن است خطرهایی مثل ثبت داده، سرقت اطلاعات ورود یا بدافزار داشته باشند. اگر هدف شما میزبانی سایت، توسعه نرم افزار، اجرای سرویس یا مدیریت یک زیرساخت مجاز است، VPS می تواند بستر مستقل شما باشد؛ اما سرور مجازی به تنهایی VPN نیست و هیچ سروری مجوز استفاده خارج از قانون یا شرایط سرویس را ایجاد نمی کند. برای بررسی یک لوکیشن خارجی می توانید صفحه سرور مجازی فرانسه را ببینید و پیش از سفارش، سیاست استفاده و مشخصات همان پلن را بخوانید.
خلاصه خیلی سریع: Hysteria2 و TUIC هر دو از انتقال مبتنی بر QUIC و UDP استفاده می کنند، اما یک نرم افزار واحد نیستند. Hysteria2 پیاده سازی و ابزار مستقل خود را دارد؛ TUIC یک پروتکل است که در این آموزش با پیاده سازی sing-box راه اندازی می شود. برای هر دو به دامنه، TLS درست، احراز هویت قوی و عبور UDP از فایروال نیاز دارید. هیچ کدام سرعت ثابت یا بهتر از دیگری را در همه شبکه ها تضمین نمی کند.
فهرست مطالب
- Hysteria2 و TUIC چیستند؟
- تفاوت Hysteria2 و TUIC در یک نگاه
- پیش نیازها قبل از نصب
- آموزش نصب Hysteria2 روی لینوکس
- آموزش نصب TUIC با sing-box
- نصب هر دو روی یک سرور
- اتصال کلاینت به سرور
- عیب یابی خطاهای رایج
- نکات امنیتی مهم
- سوالات متداول
Hysteria2 و TUIC چیستند؟
برای فهمیدن تفاوت این دو، اول باید واژه «پروتکل» را از «سرویس» جدا کنیم. پروتکل مشخص می کند دو نرم افزار چطور با هم حرف بزنند؛ سرویس یا برنامه، همان چیزی است که روی سرور و دستگاه کاربر نصب می کنید و اتصال را برقرار می کند.
Hysteria2؛ نرم افزار سرور و کلاینت بر پایه QUIC
Hysteria2 نسخه دوم نرم افزار Hysteria است. این نرم افزار برای انتقال داده از QUIC استفاده می کند؛ QUIC روی UDP کار می کند و برای ایجاد اتصال امن به TLS متکی است. در سمت سرور، احراز هویت و پارامترهای شبکه در فایل YAML تنظیم می شوند. نسخه های رسمی سرور و کلاینت برای سیستم عامل های متداول منتشر می شوند و اسکریپت رسمی لینوکس، برنامه و واحد systemd را نصب می کند؛ با این حال، نصب کننده به جای شما همه تنظیمات سرور را کامل نمی کند.
در Hysteria2 می توانید کنترلگر ازدحام را متناسب با مسیر انتخاب کنید. BBR کنترلگر پیش فرض متداولی است؛ حالت Brutal فقط زمانی انتخاب مناسبی است که ظرفیت واقعی لینک را بدانید و درست وارد کنید. تعیین عددی بالاتر از ظرفیت واقعی، سرعت را جادویی زیاد نمی کند و می تواند باعث ازدحام، افت بسته و اتصال ناپایدار شود.
TUIC؛ پروتکلی که در این راهنما با sing-box اجرا می شود
TUIC یک پروتکل انتقال داده روی QUIC است که برای جابه جایی ترافیک TCP و UDP طراحی شده است. در این آموزش، سرور TUIC را با sing-box اجرا می کنیم. sing-box یک نرم افزار چندپروتکلی است و برای TUIC، تنظیم ورودی، کاربر، شناسه UUID، گذرواژه و TLS در فایل JSON تعریف می شود. در حال حاضر نسخه پروتکل TUIC v5 در پروژه مرجع مشخص شده است؛ نسخه و سازگاری برنامه کلاینت را همیشه با نسخه ای که نصب کرده اید هماهنگ کنید.
پس Hysteria2 و TUIC را با «یک اپ واحد» یا «یک سرویس آماده» اشتباه نگیرید. شما نرم افزار سرور را روی VPS خود نصب و نگهداری می کنید و برای اتصال، به کلاینتی نیاز دارید که همان پروتکل و نسخه را پشتیبانی کند.
تفاوت Hysteria2 و TUIC در یک نگاه
| معیار | Hysteria2 | TUIC با sing-box |
|---|---|---|
| چیست؟ | نرم افزار سرور و کلاینت مستقل با پروتکل Hysteria2 | پروتکل انتقال که در این راهنما با sing-box پیاده سازی می شود |
| انتقال شبکه | QUIC روی UDP | QUIC روی UDP |
| پیکربندی سرور | فایل YAML، احراز هویت و TLS | فایل JSON، کاربران UUID/password و TLS |
| مدیریت سرویس | اسکریپت رسمی و systemd | نصب sing-box و سرویس systemd |
| کنترل ازدحام | BBR، Reno و در شرایط مناسب Brutal | cubic، new_reno یا bbr در تنظیمات TUIC |
| مناسب چه کسی است؟ | کسی که می خواهد Hysteria2 را مستقیم نصب و مدیریت کند | کسی که از قبل با sing-box کار می کند یا به پیاده سازی TUIC آن نیاز دارد |
| سرعت | به مسیر، packet loss، منابع VPS و کلاینت بستگی دارد | به مسیر، packet loss، منابع VPS و کلاینت بستگی دارد |
اگر فقط برای مقایسه می خواهید یکی را انتخاب کنید، اول از همه ببینید برنامه سمت کاربر از کدام پروتکل و نسخه پشتیبانی می کند. بعد روی همان شبکه، همان سرور و در زمان های مشابه چند تست انجام دهید. عددهای تبلیغاتی یا تجربه یک نفر در اپراتور دیگر، معیار قطعی برای شبکه شما نیست.
پیش نیازها قبل از نصب
پیش از اجرای دستورها، این موارد را آماده کنید. بهتر است ابتدا فقط یکی از دو سرویس را راه اندازی کنید تا هنگام عیب یابی، تداخل پورت یا گواهی باعث سردرگمی نشود.
- سرور لینوکسی سازگار: یک توزیع پایدار با systemd انتخاب کنید؛ برای نمونه Ubuntu LTS یا Debian پایدار. در انتخاب نسخه، راهنمای رسمی برنامه و چرخه پشتیبانی توزیع را بررسی کنید.
- دسترسی مدیریتی: برای نصب بسته و تنظیم systemd به دسترسی root یا sudo نیاز دارید. قبل از تغییر فایروال، مطمئن شوید دسترسی SSH شما مجاز می ماند.
- دامنه: یک زیردامنه مثل
hy2.example.comبسازید و رکورد A آن را به IPv4 سرور و در صورت استفاده رکورد AAAA را به IPv6 درست اشاره دهید. اگر AAAA دارید اما IPv6 روی سرور یا مسیر کار نمی کند، ابتدا رکورد را اصلاح کنید. - گواهی TLS معتبر: گواهی باید برای همان نام دامنه صادر شده باشد و کلاینت بتواند آن را اعتبارسنجی کند. برای Hysteria2 و TUIC می توانید گواهی معتبر موجود را معرفی کنید. مسیر کلید خصوصی را عمومی نکنید.
- پورت UDP: Hysteria2 در مثال ما UDP/۴۴۳ و TUIC روی UDP/۸۴۴۳ گوش می دهد. اگر در پنل ارائه دهنده فایروال ابری یا Security Group دارید، همان پورت UDP را آنجا هم باز کنید.
- برنامه کلاینت سازگار: پیش از نصب، مطمئن شوید دستگاه کاربر اپی دارد که نسخه مورد استفاده Hysteria2 یا TUIC را پشتیبانی می کند.
تفاوت UDP و TCP را جدی بگیرید: باز بودن TCP/۴۴۳ به تنهایی برای سروری که روی UDP/۴۴۳ گوش می دهد کافی نیست. قاعده فایروال را با پروتکل درست بسازید و هم فایروال سیستم عامل و هم فایروال پنل سرور را بررسی کنید.
اگر هنوز در مرحله انتخاب زیرساخت هستید، صفحه سرور مجازی فرانسه مشخصات لوکیشن و پلن ها را نشان می دهد. قبل از خرید، منابع مورد نیاز، سیستم عامل قابل نصب، سیاست استفاده و شرایط مصرف هر پلن را متناسب با کاربرد مجاز خودتان بررسی کنید.
آموزش نصب Hysteria2 روی لینوکس
در این بخش، نصب را با اسکریپت رسمی Hysteria انجام می دهیم. اسکریپت، باینری و سرویس systemd را نصب می کند، اما شما باید فایل پیکربندی را با مقادیر واقعی سرور تکمیل کنید. دستور زیر اسکریپت رسمی را اجرا می کند؛ قبل از اجرا، مطمئن شوید منبع اسکریپت مورد اعتماد شماست و آن را روی سرور عملیاتی بدون برنامه پشتیبان اجرا نکنید.
گام ۱: نصب باینری و سرویس systemd
bash <(curl -fsSL https://get.hy2.sh/) پس از پایان نصب، مسیرهای معمول نصب عبارت اند از /usr/local/bin/hysteria برای باینری و /etc/hysteria/config.yaml برای تنظیمات. سرویس معمول این نصب کننده hysteria-server.service است. اگر پیام نصب شما مسیر دیگری نشان داد، همان خروجی را مبنا قرار دهید.
گام ۲: آماده کردن گذرواژه قوی
گذرواژه نمونه را از خودتان نسازید و مقدار نمونه مقاله را عینا استفاده نکنید. روی سرور این دستور یک رشته تصادفی می سازد:
openssl rand -hex 24 خروجی را در یک مدیر گذرواژه نگه دارید و آن را در پیام عمومی، اسکرین شات، مخزن Git یا تیکت بدون محافظت قرار ندهید. همین مقدار باید در کلاینت مجاز هم وارد شود.
گام ۳: ویرایش فایل تنظیمات
فایل نمونه را باز کنید:
sudo nano /etc/hysteria/config.yaml نمونه زیر را با دامنه و مسیر گواهی خودتان تکمیل کنید. فرض شده فایل گواهی و کلید از قبل وجود دارند:
listen: :443
tls:
cert: /etc/ssl/hysteria/fullchain.pem
key: /etc/ssl/hysteria/privkey.pem
auth:
type: password
password: "REPLACE_WITH_A_LONG_RANDOM_SECRET" listen: :443 یعنی سرویس روی پورت ۴۴۳ گوش می دهد؛ در این پروتکل، ترافیک اتصال روی UDP است. اگر پورت را عوض می کنید، کلاینت و فایروال را هم به همان عدد تغییر دهید. به جای عبارت REPLACE_WITH_A_LONG_RANDOM_SECRET خروجی گذرواژه سازی را بگذارید.
گواهی و کلید باید برای نام دامنه ای باشند که کلاینت به آن وصل می شود. همچنین حساب کاربری سیستم که سرویس با آن اجرا می شود باید دسترسی خواندن امن به هر دو فایل داشته باشد. با sudo systemctl cat hysteria-server.service یا دستور زیر، هویت سرویس را بررسی کنید:
sudo systemctl show -p User -p Group hysteria-server.service فایل کانفیگ حاوی گذرواژه است و نباید برای همه کاربران قابل خواندن باشد. اگر User و Group در واحد خالی است و سرویس با دسترسی پیش فرض root اجرا می شود، مالکیت root و مجوز 600 مناسب است. اگر سرویس با کاربر اختصاصی اجرا می شود، مالک را root و گروه را گروه همان سرویس بگذارید و فقط خواندن گروه را مجاز کنید؛ برای نمونه مجوز 640، به شرطی که گروه درست انتخاب شده باشد. در تنظیم مجوز، خواندن فایل برای خود سرویس را هم حفظ کنید. از chmod 777 و باز کردن کلید خصوصی برای همه کاربران پرهیز کنید. همین اصل را برای فایل /etc/sing-box/config.json بعد از نصب sing-box رعایت کنید.
Hysteria2 برای TLS می تواند از گواهی های فایل محلی یا ACME استفاده کند. در فایل تنظیمات، هر دو روش را همزمان وارد نکنید. اگر روش ACME را انتخاب می کنید، پورت ورودی به نوع challenge بستگی دارد: HTTP-۰۱ معمولا به TCP/۸۰، روش TLS-ALPN-۰۱ معمولا به TCP/۴۴۳ و DNS-۰۱ به دسترسی API یا تنظیم DNS نیاز دارد و به خودی خود پورت ورودی وب نمی خواهد. فقط همان پورت و دسترسی لازم برای روش انتخابی را در فایروال سرور و پنل شبکه فراهم کنید. در نمونه این مقاله از گواهی موجود استفاده شده تا بتوانید آن را با TUIC هم به اشتراک بگذارید.
گام ۴: باز کردن پورت UDP مورد نیاز
اگر UFW فعال است، قاعده UDP/۴۴۳ را اضافه کنید:
sudo ufw allow 443/udp
sudo ufw status verbose اگر قصد دارید برای اولین بار UFW را فعال کنید، اول اجازه SSH را اضافه و دسترسی را بررسی کنید؛ وگرنه ممکن است اتصال مدیریتی خودتان قطع شود. اگر از فایروال دیگری استفاده می کنید، معادل همین قاعده را آنجا بسازید. روی فایروال پنل سرور نیز UDP/۴۴۳ باید باز باشد.
گام ۵: راه اندازی و بررسی سرویس
بعد از ذخیره فایل تنظیمات، سرویس را فعال و راه اندازی کنید:
sudo systemctl enable --now hysteria-server.service
sudo systemctl status hysteria-server.service --no-pager
sudo journalctl -u hysteria-server.service -e --no-pager اگر قبلا سرویس نصب بوده و فقط فایل را تغییر داده اید، دستور sudo systemctl restart hysteria-server.service را اجرا کنید. در لاگ باید پیام راه اندازی موفق و بدون خطای پیکربندی دیده شود. اگر سرویس بالا نمی آید، پیش از تکرار نصب، متن خطا را بخوانید؛ خطاهای YAML معمولا از فاصله گذاری، کوتیشن یا نام نادرست فیلدها می آیند.
گام ۶: یک نمونه حداقلی برای کلاینت Hysteria2
اگر کلاینتی دارید که فایل YAML می پذیرد، این نمونه فقط برای ساخت پراکسی SOCKS محلی است. مقدار گذرواژه باید با سرور یکی باشد و پورت و دامنه نیز با تنظیم سرور شما تطبیق داشته باشند:
server: hy2.example.com:443
auth: "REPLACE_WITH_A_LONG_RANDOM_SECRET"
socks5:
listen: 127.0.0.1:1080 گوش دادن روی 127.0.0.1 باعث می شود پراکسی فقط روی همان دستگاه در دسترس باشد. آن را بدون فایروال و کنترل دسترسی روی 0.0.0.0 منتشر نکنید. برای گواهی معتبر، گزینه هایی مثل insecure: true را راه حل دائمی ندانید؛ این کار بررسی هویت سرور را خاموش می کند.
آموزش نصب TUIC با sing-box
TUIC در این راهنما با sing-box اجرا می شود. پیکربندی sing-box با JSON است؛ اگر JSON شما یک ویرگول اضافه یا کوتیشن اشتباه داشته باشد، برنامه اجرا نمی شود. قبل از شروع، دامنه و گواهی را آماده کنید و روی فایروال پنل ارائه دهنده مشخص کنید کدام UDP port را باز می کنید.
گام ۱: نصب sing-box
مستندات sing-box اسکریپت نصب لینوکس را ارائه می کنند. دستور رسمی را اجرا کنید و در سرور حساس، ابتدا منبع اسکریپت را بررسی کنید:
curl -fsSL https://sing-box.app/install.sh | sudo sh بعد از نصب، وجود باینری را بررسی کنید:
sing-box version در نصب های systemd، معمولا واحدی به نام sing-box در دسترس است. مسیر پیکربندی نصب بسته ای را پیش از جایگزین کردن فایل ها بررسی کنید؛ مسیر متداول /etc/sing-box/config.json است.
گام ۲: ساخت UUID و گذرواژه جداگانه
TUIC از UUID و گذرواژه برای هر کاربر استفاده می کند. برای ساخت UUID در لینوکس:
cat /proc/sys/kernel/random/uuid برای ساخت گذرواژه مجزا:
openssl rand -hex 24 برای هر کاربر UUID و گذرواژه جدا بسازید تا در صورت افشای اطلاعات یک دستگاه، بتوانید فقط همان کاربر را حذف یا تعویض کنید.
گام ۳: ساخت فایل JSON ورودی TUIC
فایل را در مسیر نصب خودتان باز کنید:
sudo nano /etc/sing-box/config.json نمونه زیر یک ورودی TUIC روی UDP/۸۴۴۳ می سازد و ترافیک پذیرفته شده را از outbound مستقیم سرور عبور می دهد. مسیر گواهی و کلید را با فایل های واقعی خودتان جایگزین کنید:
{
"log": {"level": "info"},
"inbounds": [
{
"type": "tuic",
"tag": "tuic-in",
"listen": "0.0.0.0",
"listen_port": 8443,
"users": [
{
"name": "client-1",
"uuid": "REPLACE_WITH_GENERATED_UUID",
"password": "REPLACE_WITH_A_DIFFERENT_RANDOM_SECRET"
}
],
"congestion_control": "cubic",
"auth_timeout": "3s",
"heartbeat": "10s",
"tls": {
"enabled": true,
"certificate_path": "/etc/ssl/tuic/fullchain.pem",
"key_path": "/etc/ssl/tuic/privkey.pem"
}
}
],
"outbounds": [
{"type": "direct", "tag": "direct"}
],
"route": {"final": "direct"}
} در این نمونه، listen روی IPv4 است. اگر سرور IPv6 دارد و می خواهید از آن استفاده کنید، bind address و DNS AAAA را هم متناسب با وضعیت واقعی سرور تنظیم کنید. گزینه های uuid و password را از خروجی دستورهای بالا جایگزین کنید. نام client-1 فقط برچسب مدیریتی است و می تواند نام دیگری باشد.
فیلد congestion_control یکی از روش های پشتیبانی شده مانند cubic، new_reno یا bbr است. مقدار نمونه cubic را نقطه شروع در نظر بگیرید، نه تضمین سرعت. مقداردهی zero_rtt_handshake را بدون نیاز روشن نکنید؛ مستندات TUIC درباره امکان replay در ۰-RTT هشدار می دهند.
گام ۴: باز کردن UDP/۸۴۴۳ و اعتبارسنجی
قاعده فایروال سیستم عامل را اضافه کنید:
sudo ufw allow 8443/udp
sudo ufw status verbose همین پورت را در فایروال پنل VPS هم باز کنید. سپس اگر نسخه نصب شده دستور check را پشتیبانی می کند، پیکربندی را قبل از restart اعتبارسنجی کنید:
sudo sing-box check -c /etc/sing-box/config.json فایل JSON شامل UUID و گذرواژه است. پیش از راه اندازی، کاربر و گروه سرویس را بررسی کنید:
sudo systemctl show -p User -p Group sing-box.service اگر User و Group خالی است و سرویس با دسترسی پیش فرض root اجرا می شود، فایل را با مالک root و مجوز 600 نگه دارید. اگر sing-box با کاربر اختصاصی اجرا می شود، مالک را root و گروه را گروه سرویس قرار دهید و فقط همان گروه را برای خواندن مجاز کنید؛ معمولا مجوز 640 با گروه درست مناسب است. مطمئن شوید سرویس همچنان به فایل دسترسی دارد و کانفیگ برای سایر کاربران خوانا نیست.
اگر نسخه یا بسته شما مسیر دیگری دارد، آرگومان -c را با مسیر واقعی فایل جایگزین کنید. پس از موفقیت بررسی، سرویس را فعال کنید:
sudo systemctl enable --now sing-box
sudo systemctl status sing-box --no-pager
sudo journalctl -u sing-box -e --no-pager اگر فایل گواهی در مسیرهای Lets Encrypt قرار دارد، دسترسی خواندن سرویس را با احتیاط بررسی کنید. کلید خصوصی را عمومی نکنید؛ بهتر است فایل در مسیری با دسترسی محدود و گروه مناسب سرویس قرار گیرد و تمدید گواهی نیز بدون باز کردن مجوز برای همه کاربران انجام شود.
می توان Hysteria2 و TUIC را روی یک VPS نصب کرد؟
بله، به شرطی که برای هر فرایند، پورت شنونده جدا بگذارید و منابع سرور و سیاست شبکه اجازه بدهند. در مثال این مقاله Hysteria2 روی UDP/۴۴۳ و TUIC روی UDP/۸۴۴۳ است. یک آدرس و پورت یکسان را به دو برنامه ندهید؛ یکی از آنها نمی تواند به شکل عادی همان socket را همزمان در اختیار بگیرد.
هر دو سرویس می توانند از یک دامنه و یک گواهی معتبر استفاده کنند، اما باید هر نرم افزار به فایل های گواهی دسترسی امن داشته باشد و تمدید گواهی باعث توقف سرویس نشود. اگر اولین بار است نصب می کنید، توصیه عملی این است که ابتدا یکی را کامل بالا بیاورید، اتصال کلاینت را آزمایش کنید، بعد سراغ دومی بروید. این کار پیدا کردن خطای پورت یا TLS را ساده تر می کند.
بعد از نصب، کلاینت را چطور تنظیم کنم؟
برنامه کلاینت باید همان پروتکل سرور را پشتیبانی کند. برای Hysteria2، از کلاینت Hysteria2 یا برنامه ای استفاده کنید که پشتیبانی نسخه آن روشن است. مقادیر لازم معمولا دامنه و پورت، گذرواژه احراز هویت، نام دامنه گواهی و در صورت نیاز نوع پراکسی محلی است. برای TUIC، برنامه سمت کاربر باید TUIC را پشتیبانی کند و همان UUID، گذرواژه و پورت سرور را دریافت کند.
- آدرس سرور را با دامنه ای وارد کنید که گواهی TLS برای آن صادر شده است.
- پورت و نوع انتقال را با سرور تطبیق دهید؛ در این مثال برای Hysteria2 عدد ۴۴۳ و برای TUIC عدد ۸۴۴۳ است و هر دو UDP هستند.
- گذرواژه، UUID و نام TLS را با فاصله یا کاراکتر اضافی کپی نکنید.
- بررسی اعتبار گواهی را خاموش نکنید؛ خطای گواهی را با اصلاح دامنه و زنجیره گواهی حل کنید.
- اگر از پراکسی محلی استفاده می کنید، آدرس محلی را فقط برای همان دستگاه در دسترس قرار دهید.
در این مطلب تنظیم اپ های تجاری یا روش دور زدن محدودیت های شبکه را آموزش نمی دهیم. هنگام استفاده، قوانین محل حضور خود و شرایط سرویس میزبانی را رعایت کنید.
عیب یابی خطاهای رایج Hysteria2 و TUIC
| علامت خطا | محتمل ترین علت | چه چیزی را بررسی کنم؟ |
|---|---|---|
| سرویس شروع نمی شود | اشتباه در YAML/JSON، گواهی ناموجود، permission یا اشغال بودن پورت | لاگ systemd، اعتبارسنجی JSON، مسیر فایل ها و برنامه ای که پورت را گرفته |
| کلاینت timeout می شود | UDP در فایروال سیستم یا پنل بسته است، DNS اشتباه است یا شبکه UDP را عبور نمی دهد | رکورد A/AAAA، UFW، فایروال پنل، پورت listen و لاگ سرور |
| خطای TLS یا certificate mismatch | گواهی برای دامنه دیگری صادر شده یا کلاینت به IP وصل شده | نام دامنه در کلاینت، تاریخ انقضای گواهی، زنجیره گواهی و دسترسی کلید |
| احراز هویت رد می شود | گذرواژه یا UUID سمت کلاینت و سرور یکی نیست | مقادیر را دوباره از منبع امن کپی کنید؛ از یک رشته برای چند کاربر استفاده نکنید |
| پورت در حال استفاده است | سرویس دیگر UDP/۴۴۳ یا UDP/۸۴۴۳ را گرفته | با sudo ss -lunp برنامه گوش دهنده را پیدا کنید و پورت ها را جدا کنید |
| TCP باز است ولی اتصال برقرار نمی شود | فقط TCP آزمایش شده اما سرویس QUIC روی UDP گوش می دهد | قاعده را صریحا برای UDP در سیستم عامل و پنل شبکه باز کنید |
| اتصال وصل می شود اما کند یا ناپایدار است | packet loss، ظرفیت نادرست، ازدحام، محدودیت UDP، منابع کم یا مسیر نامناسب | تست در چند زمان، آمار شبکه و لاگ؛ مقدار bandwidth را بیش از ظرفیت واقعی نگذارید |
دستورهای اولیه تشخیص
روی سرور، سرویس های فعال و پورت های UDP را نگاه کنید:
sudo systemctl --failed
sudo ss -lunp
sudo journalctl -u hysteria-server.service -n 100 --no-pager
sudo journalctl -u sing-box -n 100 --no-pager لازم نیست دستورهای هر دو سرویس را همزمان اجرا کنید؛ فقط لاگ برنامه ای را بخوانید که در حال بررسی آن هستید. برای تشخیص DNS هم نام دامنه را از کامپیوتری بیرون از VPS resolve کنید. تست ساده TCP مانند curl یا nc -vz باز بودن یک listener UDP را ثابت نمی کند. بهتر است از کلاینت سازگار با پروتکل استفاده کنید و لاگ دو طرف را همزمان ببینید.
نکات امنیتی که بهتر است از روز اول رعایت کنید
- گذرواژه های نمونه را استفاده نکنید. برای هر کاربر مقدار یکتا و تصادفی بسازید و در صورت افشا فورا عوض کنید.
- پورت های غیرضروری را باز نکنید. Hysteria2 و TUIC به UDP نیاز دارند؛ برای راه اندازی شان TCP همان شماره را بی دلیل باز نگذارید.
- SSH را محافظت کنید. دسترسی root با رمز ساده، کلید خصوصی بی محافظ و سرویس های مدیریت عمومی خطرناک هستند. دسترسی مدیریتی را محدود و سیستم عامل را به روز نگه دارید.
- گواهی TLS را درست اعتبارسنجی کنید. کلید خصوصی را با مجوز محدود نگه دارید و بررسی گواهی سمت کلاینت را خاموش نکنید.
- از ۰-RTT فقط با آگاهی استفاده کنید. در مستندات TUIC، خطر replay برای handshake صفر-رفت وبرگشت ذکر شده است؛ این قابلیت برای بیشتر نصب های ساده لازم نیست.
- مصرف و لاگ را بررسی کنید. اتصال غیرمنتظره، مصرف بالا، تلاش های تکراری ورود و رشد غیرمعمول لاگ را نادیده نگیرید.
- نسخه پشتیبان امن بگیرید. از فایل های پیکربندی نسخه پشتیبان داشته باشید، اما چون فایل ها حاوی رمز و UUID هستند، آنها را رمزگذاری کنید و روی مخزن عمومی قرار ندهید.
- قوانین را رعایت کنید. روی سروری که مالک آن نیستید این نرم افزار را نصب نکنید و پیش از استفاده، مقررات جاری و شرایط استفاده سرویس دهنده را بخوانید.
برای Hysteria2 سرور فرانسه لازم است؟
نه؛ Hysteria2 و TUIC به خودی خود به یک کشور خاص محدود نیستند. محل سرور را براساس مخاطب، مسیر شبکه، تاخیر، هزینه، دسترس پذیری و مقررات انتخاب کنید. فاصله جغرافیایی به تنهایی سرعت نهایی را تعیین نمی کند و مسیر اپراتور، کیفیت شبکه، بار سرور و پشتیبانی UDP هم اثر دارند. اگر فرانسه برای پروژه مجاز شما گزینه مناسبی است، می توانید پلن های سرور مجازی فرانسه را با نیاز واقعی خود مقایسه کنید؛ مشخصات، شرایط ترافیک و سیاست استفاده هر پلن را همان صفحه بخوانید.
کدام را انتخاب کنم؟
اگر می خواهید ساده تر شروع کنید و نرم افزار مستقل Hysteria2 برای محیط شما مناسب است، ابتدا Hysteria2 را نصب و آزمایش کنید. اگر از sing-box برای مدیریت سرویس ها استفاده می کنید یا کلاینت شما TUIC را پشتیبانی می کند، TUIC گزینه قابل بررسی است. انتخاب نهایی را بر اساس سازگاری کلاینت، کیفیت UDP در شبکه شما، سادگی نگهداری و لاگ ها انجام دهید؛ نه بر اساس وعده «سریع ترین پروتکل».
بهترین راه تصمیم گیری، نصب آزمایشی یکی از آنها روی پورت مجزا، اجرای تست در چند ساعت مختلف و ثبت نتیجه هاست. بعد از انتخاب، سرویس اضافی را خاموش و پورت آن را ببندید تا سطح حمله سرور بی دلیل افزایش پیدا نکند.
مسیر درست انتخاب سرور: Hysteria2 و TUIC نرم افزار و پروتکل هستند؛ خود VPS یک ماشین مجازی با سیستم عامل و منابع مشخص است. اگر کاربردتان میزبانی وب، توسعه یا اجرای سرویس مجاز است، مشخصات رم، CPU، دیسک، لوکیشن، IPv4/IPv6 و شرایط ترافیک را با نیاز پروژه تطبیق دهید. برای بررسی پلن ها به صفحه خرید سرور مجازی سر بزنید. خرید VPS به معنی خرید سرویس VPN نیست؛ پیش از سفارش، نوع استفاده و شرایط سرویس را با فروشنده روشن کنید.
سوالات متداول
Hysteria2 چیست و روی چه پورتی کار می کند؟
Hysteria2 نرم افزار سرور و کلاینتی است که از انتقال مبتنی بر QUIC و UDP استفاده می کند. پورت پیش فرض مستندات آن UDP/۴۴۳ است، اما می توان پورت دیگری تنظیم کرد؛ در آن صورت کلاینت و فایروال هم باید تغییر کنند.
تفاوت اصلی Hysteria2 و TUIC چیست؟
Hysteria2 نرم افزار مستقل خودش را دارد؛ TUIC یک پروتکل است که می توان آن را با sing-box یا کلاینت های سازگار اجرا کرد. هر دو از QUIC/UDP استفاده می کنند، اما ساختار فایل تنظیمات، روش احراز هویت و ابزار مدیریت آنها متفاوت است.
برای راه اندازی TUIC حتما باید sing-box نصب کنم؟
نه لزوما؛ TUIC پیاده سازی های مختلف دارد. در این مقاله از sing-box استفاده می کنیم چون مستندات و فایل پیکربندی مشخصی برای TUIC inbound ارائه می دهد. هر پیاده سازی را مطابق مستند همان برنامه نصب کنید و سازگاری نسخه را بررسی کنید.
آیا می توان هر دو را روی یک VPS نصب کرد؟
بله، اگر پورت های شنونده جدا، فایروال درست و منابع کافی داشته باشید. نمونه این مقاله Hysteria2 را روی UDP/۴۴۳ و TUIC را روی UDP/۸۴۴۳ می گذارد. استفاده از پورت و آدرس یکسان برای هر دو توصیه نمی شود.
چرا کلاینت وصل نمی شود، در حالی که پورت TCP باز است؟
چون سرویس های این راهنما روی UDP کار می کنند. باز بودن TCP/۴۴۳ جای UDP/۴۴۳ را نمی گیرد. قاعده UDP را هم در فایروال لینوکس و هم در فایروال پنل سرور باز کنید و لاگ سرویس را ببینید.
کدام یک سریع تر است؟
پاسخ ثابتی برای همه شبکه ها وجود ندارد. سرعت به مسیر، تاخیر و افت بسته، فایروال های بین راه، کلاینت، منابع سرور و تنظیمات کنترل ازدحام بستگی دارد. هر دو را با شرایط یکسان و در زمان های مختلف آزمایش کنید.
آیا Hysteria2 یا TUIC همان VPN هستند؟
اینها پروتکل ها و نرم افزارهای پراکسی/انتقال هستند و با سرویس VPN آماده یا یک شبکه خصوصی مجازی کامل یکی نیستند. قابلیت نهایی به کلاینت و تنظیماتی که استفاده می کنید وابسته است. نگارنوین سرویس VPN ارائه نمی کند؛ این آموزش درباره نصب نرم افزار روی سرور تحت مدیریت خودتان است.
آیا VPN در همه جا غیرقانونی است؟
نمی توان برای همه کشورها و همه کاربردها یک حکم کلی داد. قوانین محلی و شرایط سرویس دهنده را بررسی کنید. این مقاله مشاوره حقوقی نیست و راه اندازی سرور هم به تنهایی مجاز بودن کاربرد را تضمین نمی کند.
برای استفاده آموزشی باید سرور مجازی خارج بخرم؟
نه، هر محیط آزمایشی مجاز با منابع و شبکه مناسب می تواند کافی باشد. اگر VPS خارجی برای پروژه شما لازم است، پیش از سفارش، لوکیشن، سیستم عامل، امکان استفاده از UDP، مشخصات ترافیک و سیاست استفاده را بخوانید. صفحه سرور مجازی فرانسه اطلاعات همان سرویس را ارائه می کند.
جمع بندی
Hysteria2 و TUIC هر دو گزینه هایی مبتنی بر QUIC و UDP هستند، اما راه اندازی و مدیریت شان فرق دارد. در Hysteria2 با یک برنامه مستقل، فایل YAML و سرویس hysteria-server کار می کنید؛ در TUIC با sing-box، فایل JSON، UUID و تنظیم TLS. دامنه و گواهی معتبر، باز بودن UDP، رمز قوی و بررسی لاگ ها چهار بخش اصلی نصب موفق هستند.
به جای کپی کردن یک اسکریپت ناشناس، گام ها را جدا انجام دهید و هر مرحله را پیش از رفتن به مرحله بعدی بررسی کنید. اگر هدف شما میزبانی یا توسعه قانونی روی لینوکس است، منابع سرور را متناسب با نیازتان انتخاب کنید و برای مقایسه پلن ها صفحه خرید سرور مجازی را ببینید. نگارنوین سرویس VPN عرضه نمی کند و استفاده از هر نرم افزار، تابع مقررات و شرایط سرویس دهنده است.
مبنای فنی مقاله: مستندات رسمی Hysteria ۲ برای نصب، راه اندازی سرور، کلاینت و پیکربندی کامل؛ مستندات sing-box برای نصب بسته، TLS و TUIC inbound؛ و مشخصات پروتکل TUIC. نام ها و پیکربندی ها باید با نسخه ای که هنگام نصب دریافت می کنید تطبیق داده شوند.