201 lines
12 KiB
Markdown
201 lines
12 KiB
Markdown
---
|
|
title: آموزش راهاندازی تانل WST به عنوان سرور میانی
|
|
---
|
|
|
|
# آموزش راهاندازی تانل WST به عنوان سرور میانی
|
|
|
|
<div dir=rtl align=center>
|
|
ابتدا میتوانید این ویدئو را ببینید
|
|
|
|
<a href="https://www.youtube.com/watch?v=r2dlt19OybM"><img width="32%" src="https://github.com/hiddify/hiddify-config/assets/125398461/51e43c11-9192-4856-abe4-45ab0e2aa023" /></a>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
برای این کار شما به یک سرور میانی نیاز دارید تا از طریق آن به سرور اصلی متصل شوید. معمولا این سرور میانی در ایران در نظر گرفته میشود.
|
|
دیاگرام استفاده از تانل به این شکل است.
|
|
|
|

|
|
|
|
|
|
حالا در اینجا برای ارتباط بین سرور ایران و سرور اصلی از تانل WS استفاده میشود. بعد از نصب شما به سرور ایران متصل میشوید، سرور ایران شما را به سرور اصلی متصل میکند و سپس از سرور اصلی به اینترنت آزاد دسترسی خواهید داشت.
|
|
|
|
> نکته: ما این اسکریپتها را روی ابونتو ۲۲.۰۴ تست کردیم بنابراین بهتر هست از این نسخه استفاده کنید.
|
|
|
|
روی سرور اصلی نیز هیدیفایمنیجر را نصب کنید که راهنمای نصب آن در [اینجا](/fa/manager/installation-and-setup/guide/) وجود داره.
|
|
|
|
## نصب تانل روی سرور اصلی و میانی (ایران)
|
|
روی **هر دو سرور** باید برنامه این تانل را نصب کنید. برای این کار ابتدا با روت به سرور متصل شوید و کدهای زیر را اجرا کنید:
|
|
ابتدا برنامه را با کامند زیر دانلود کنید.
|
|
```
|
|
wget "https://github.com/erebe/wstunnel/releases/download/v5.0/wstunnel-linux-x64"
|
|
```
|
|
به آن دسترسی اجرا بدهید.
|
|
```
|
|
sudo chmod +x wstunnel-linux-x64
|
|
```
|
|
برنامه را با کامند تغییر نام داده و به پوشه bin/ انتقال دهید.
|
|
```
|
|
sudo mv wstunnel-linux-x64 /bin/wstunnel
|
|
|
|
```
|
|
|
|
## اجرای تانل روی سرور اصلی
|
|
|
|
روی سرور اصلی که هیدیفای نصب شده است، باید تانل نصب شده را اجرا کنید. با این کامند آن را بر روی پورت ۸۰۸۰ فعال نمایید.
|
|
|
|
```
|
|
sudo wstunnel --server ws://0.0.0.0:8080 -v
|
|
```
|
|
|
|
> نکته: دقت کنید اگر پورت تانل را عوض کردید در هر دو سرور باید پورتها یکی باشند.
|
|
|
|
- دقت کنید بعد از زدن این کامند، پیغام `WAIT for tcp connection on 0.0.0.0:8080` داده میشود که به معنای اجرای موفق تانل و در انتظار بودن برقراری لینک در سرور میانی است چون این تانل نیاز به برقرار ارتباط از هر دو سمت را دارد.
|
|
|
|
کار راهاندازی تانل روی سرور اصلی نیز تمام است.
|
|
|
|
|
|
|
|
## اجرای تانل روی سرور میانی
|
|
برای راهاندازی تانل روی سرور میانی با استفاده از این کامند هم پورتهای مورد نیاز جهت فروارد نمودن را باید بدهید و هم پورتی که تانل برای برقراری ارتباط استفاده میکند.
|
|
در اینجا از پورت ۸۰۸۰ برای خود تانل استفاده شده است که سمت سرور اصلی کانفیگ شد. همینطور برنامه هیدیفای از پورتهای ۴۴۳و۸۰ به صورت خودکار استفاده میکند که آنها را نیز در کامند زیر قرار بدهید.
|
|
|
|
- اگر پورتهای دیفالت پنل هیدیفای را عوض نمودید طبق همین فرمول پورتهای ۴۴۳و۸۰ را تغییر دهید.
|
|
|
|
* اگر پورت دیگری را خواستید فروارد کنید طبث همین فرمول میتوانید انجام دهید.
|
|
|
|
|
|
```
|
|
sudo wstunnel -L 0.0.0.0:80:localhost:80 -L 0.0.0.0:443:localhost:443 ws://[cdn_or_direct_domain_of_main_server]:8080
|
|
```
|
|
|
|
|
|
|
|
- دقت شود [server_adress_or_domain] را میبایست با دامین CDN یا دایرکت ثبت شده در هیدیفای یا آیپی اصلی سرور جایگذاری کنید.
|
|
- اگر با دامین CDN این کار را انجام بدید، از فیلتر شدن سرور اصلی نیز جلوگیری میکنید.
|
|
* دقت کنید بعد از زدن این کامند، پیغام
|
|
`WAIT for tcp connection on 0.0.0.0:80 , WAIT for tcp connection on 0.0.0.0:443` داده میشود که به معنای اجرای موفق تانل و در انتظار بودن برقراری کانکشن از سمت کلاینت است.
|
|
|
|
- اگر پورت اصلی تانل (در اینجا ۸۰۸۰) روی دیتاسنتر ایران شما فیلتر شد، میتوانید پورتهای دیگر را استفاده نمایید.
|
|
- نکته خیلی مهم: اگر از دامنههای CDN برای برقراری تانل استفاده کردید، فق مجاز هستید از پورتهای کلادفلر استفاده کنید. یعنی برای کانکشن پورتهای https کلادفلر را فق میتوانید استفاده نمایید و برای خود تانل پورتهای http کلادفلر را میتوانید استفاده نمایید. [لیست پورتهای کلادفلر](https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/)
|
|
|
|
کار در راهاندازی تانل ws در سرور میانی تمام است.
|
|
|
|
## راهاندازی سرویس تانل در سرور اصلی
|
|
|
|
تنها نیاز است سرویس آن را نیز ایجاد نمایید تا در صورت ریست شدن سرور، تانل به صورت خودکار اجرا گردد. برای این کار از تانل ایجاد شده با `Ctrl+c` خارج شوید، سپس با یک ویرایشگر متنی (در اینجا `nano`) فایل سرویس را در مسیر اصلی کرنل ایجاد کنید.
|
|
|
|
```
|
|
sudo nano /etc/systemd/system/wstunnel.service
|
|
```
|
|
|
|
سپس در فایل باز شده، متن زیر را کپی کنید تا سرویس مورد نظر تعریف شود.
|
|
|
|
```
|
|
[Unit]
|
|
Description=wstunnel
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=/bin
|
|
ExecStart= wstunnel --server ws://0.0.0.0:8080 -v
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
برای خروج از ویرایشگر متنی ابتدا `Ctrl+s` بزنید تا فایل ذخیره شود سپس با `Ctrl+x` از برنامه خارج شوید.
|
|
|
|
حالا سرویس اصلی کرنل را ریست کرده و سرویس ساخته شده را فعال و استارت کنید.
|
|
|
|
```
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable wstunnel.service
|
|
sudo systemctl start wstunnel.service
|
|
```
|
|
حالا برای چک کردن ایتکه سرویس فعال شده است این کامند را بزنید و چک کنید حتما سرویس Active باشد.
|
|
```
|
|
sudo systemctl status wstunnel.service
|
|
```
|
|
|
|
اگر به هر دلیل سرویس فعال نبود، یکی از مراحل قبل احتمالا به درستی انجام نشده است.
|
|
|
|
|
|
|
|
## اراهاندازی سرویس تانل در سرور میانی
|
|
|
|
|
|
تنها نیاز است سرویس آن را نیز ایجاد نمایید تا در صورت ریست شدن سرور، تانل به صورت خودکار اجرا گردد. برای این کار با یک ویرایشگر متنی (در اینجا nano) فایل سرویس را در مسیر اصلی کرنل ایجاد کنید.
|
|
```
|
|
sudo nano /etc/systemd/system/wstunnel.service
|
|
```
|
|
سپس در فایل باز شده، متن زیر را کپی کنید تا سرویس مورد نظر تعریف شود.
|
|
|
|
```
|
|
[Unit]
|
|
Description=wstunnel
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=/bin
|
|
ExecStart= wstunnel -L 0.0.0.0:80:localhost:80 -L 0.0.0.0:443:localhost:443 ws://[cdn_or_direct_domain_of_main_server]:8080
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
- دقت کنید که `cdn_or_direct_domain_of_main_server` را با مشخصات دامنه دایرکت یا CDN خود جایگذاری کنید.
|
|
- برای خروج از ویرایشگر متنی ابتدا `Ctrl + s` بزنید تا فایل ذخیره شود سپس با `Ctrl + x` از برنامه خارج شوید.
|
|
|
|
حالا سرویس اصلی کرنل را ریست کرده و سرویس ساخته شده را فعال و استارت کنید.
|
|
|
|
```
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable wstunnel.service
|
|
sudo systemctl start wstunnel.service
|
|
```
|
|
حالا برای چک کردن ایتکه سرویس فعال شده است این کامند را بزنید و چک کنید حتما سرویس Active باشد.
|
|
```
|
|
sudo systemctl status wstunnel.service
|
|
```
|
|
|
|
اگر به هر دلیل سرویس فعال نبود، یکی از مراحل قبل احتمالا به درستی انجام نشده است.
|
|
|
|
|
|
## تعریف سرور میانی در هیدیفایمنیجر
|
|
حالا برای آیپی سرور میانی (ایران) خود یک سابدامین با پروکسی خاموش ثبت نمایید و آن را در هیدیفایمنیجر روی حالت `سرور میانی` ثبت نمایید.
|
|
- سابدامین ثبت شده را در فیلد `دامنه` قرار دهید و یک `نام نمایشی` نیز برای نمایش در کانفیگها میتوانید تعیین نمایید.
|
|
|
|
<img src="https://github.com/hiddify/hiddify.com/assets/125398461/3f41d92a-04b9-44fb-b645-ac660601472a">
|
|
|
|
## افزودن کانفیگهای `سرور میانی` جهت استفاده به لینک سابسکریپشن
|
|
|
|
همانند همیشه در هیدیفایمنیجر بهتر است کانفیگها را از لینک سابسکریپشن جدا کنید. بنابراین برای دامنه `سرور میانی` ثبت شده نیز میتوانید در تنظیمات دامنه مربوط به سابسکریپشن، تیک مربوط به دامنه `سرور میانی` را بزنید تا کانفیگهای آن به دامنه سابسکریپشن اضافه گردند.
|
|
|
|
فرض شود که دامنه مربوط به سابسکریپشن `sublink.hiddify.com` باشد، مطابق با تصویر زیر جلو بروید تا کار انجام شود.
|
|
|
|
<img src="https://github.com/hiddify/hiddify.com/assets/125398461/3661045d-ced7-4694-916f-6ef160c63230">
|
|
|
|
حالا اگه صفحه کاربر را با دامین سابسکریپشن (در اینجا `sublink.hiddify.com`) باز نمایید خواهید دید که کانکشنهای مربوط به `سرور میانی` نیز اضافه شدهاند. میتوانید این کانکشنها را به صورت تک تک و یا با استفاده از لینکهای سابسکریشن به کلاینت خود اضافه نمایید و استفاده نمایید.
|
|
|
|
|
|
## حذف تانل از سرور میانی و سرور اصلی
|
|
|
|
ابتدا باید سرویس را متوقف و غیر فعال کنید.
|
|
```
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl stop wstunnel.service
|
|
sudo systemctl disable wstunnel.service
|
|
```
|
|
سپس برنامه و سرویس ایجاد شده را حذف کنید.
|
|
```
|
|
sudo rm -f /etc/systemd/system/wstunnel.service /bin/wstunnel
|
|
```
|
|
|
|
[لینک پروژه WS Tunnel](https://github.com/erebe/wstunnel)
|