اگر به دنبال یک جایگزین امن، سریع و متنباز برای AnyDesk یا TeamViewer هستید، راهاندازی سرور خصوصی RustDesk بهترین انتخاب است. با میزبانی این سرویس روی سرور اختصاصی خود، چه در یک شبکه داخلی ایزوله (LAN) و چه روی یک سرور مجازی ابری (VPS)، مدیریت کامل ارتباطات ریموت در دستان شما خواهد بود.
در این مقاله، نحوه نصب و پیکربندی سرور RustDesk (شامل سرویسهای hbbs و hbbr) را روی اوبونتو با استفاده از Docker به صورت گامبهگام بررسی میکنیم.
پیشنیازها
- یک سرور یا ماشین مجازی با سیستمعامل Ubuntu
- دسترسی Root یا کاربر با قابلیت Sudo
- یک آدرس IP ثابت (میتواند IP پابلیک اینترنتی برای VPS یا IP لوکال برای شبکه داخلی باشد)
گام اول: تنظیمات فایروال (UFW)
سرور RustDesk برای ارتباط با کلاینتها و مدیریت رلهها به پورتهای خاصی نیاز دارد. ابتدا این پورتها را روی فایروال اوبونتو باز میکنیم:
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw reload
گام دوم: نصب Docker و Docker Compose
برای راهاندازی تمیز و بدون دردسر سرویسها، از داکر استفاده میکنیم. اگر داکر روی سرور شما نصب نیست، با دستورات زیر آن را به همراه پلاگین کمپوز نصب و فعال کنید:
sudo apt update
sudo apt install docker.io docker-compose-plugin -y
sudo systemctl enable --now docker
با دستور docker compose version میتوانید از نصب موفقیتآمیز کامپوننت داکر کمپوز مطمئن شوید.
گام سوم: ایجاد ساختار دایرکتوری و فایل Compose
برای جلوگیری از حذف شدن کلیدهای امنیتی با ریاستارت شدن سرور، یک دایرکتوری اختصاصی برای ذخیره دیتای سرور ایجاد میکنیم:
mkdir -p /opt/rustdesk/data
cd /opt/rustdesk
nano docker-compose.yml
فایل را باز کرده و پیکربندی زیر را در آن قرار دهید. دقت کنید که در خط ۱۱، عبارت YOUR_IP را پاک کرده و آدرس IP سرور خود (آیپی سرور مجازی یا آیپی شبکه داخلی) و یا دامین خود را جایگزین کنید:
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r YOUR_IP:21117
volumes:
- ./data:/root
network_mode: "bridge"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "bridge"
restart: unless-stopped
گام چهارم: راهاندازی سرویس و استخراج کلید عمومی (Key)
سرویسها را در پسزمینه اجرا کنید:
docker compose up -d
برای اینکه کلاینتها بتوانند به صورت امن و رمزنگاریشده به سرور شما متصل شوند، به یک کلید عمومی نیاز دارند که در اولین اجرا ساخته میشود. این کلید را با دستور زیر مشاهده و کپی کنید (در تنظیمات کلاینت به آن نیاز داریم):
cat /opt/rustdesk/data/id_ed25519.pub
نکته مهم در مورد نگهداری کلیدها: با توجه به تنظیماتی که انجام دادیم، جفت کلیدهای سرور روی هارد شما در مسیر
/opt/rustdesk/data/ذخیره شدهاند و با خاموش شدن سرور تغییر نمیکنند. حتماً از فایلهای این پوشه یک کپی پشتیبان (بکآپ) بگیرید تا در صورت خرابی سرور، نیازی به وارد کردن مجدد Key در تمامی سیستمهای کلاینت نباشد.
گام پنجم: بررسی سلامت سرور
برای اطمینان از اینکه همهچیز به درستی کار میکند، میتوانید وضعیت پورتهای در حال شنود را بررسی کنید:
ss -tulnp | grep 2111
خروجی باید نشان دهد که پورتهای 21115 تا 21119 در وضعیت LISTEN (برای TCP) و UNCONN (برای UDP) هستند.
گام ششم: تنظیم کلاینتها برای اتصال
برای اتصال سیستمها به سرور اختصاصی شما، دو روش متداول وجود دارد:
۱. کلاینت ویندوز
روش اول (از طریق محیط نرمافزار):
- نرمافزار RustDesk را باز کنید.
- روی آیکون سه نقطه (⋮) کنار شناسه (ID) کلیک کرده و Settings را انتخاب کنید.
- در تب Network روی گزینه Unlock network settings کلیک کنید.
- در فیلد ID Server، آدرس IP سرور خود را وارد کنید.
- در فیلد Key، کلیدی را که در گام چهارم کپی کردید قرار دهید. روی Apply کلیک کنید تا وضعیت به Ready تغییر کند.
روش دوم (ترفند تغییر نام فایل – عالی برای استقرار در تعداد بالا):
شما میتوانید نام فایل نصب/اجرایی کلاینت ویندوز (.exe) را پیش از اجرا به فرمت زیر تغییر دهید. با این کار نرمافزار به صورت خودکار کانفیگ شما را میخواند:
rustdesk-host=YOUR_IP,key=YOUR_PUBLIC_KEY.exe
۲. کلاینت لینوکس
در لینوکس هم میتوانید از رابط گرافیکی مانند روش بالا استفاده کنید، و هم برای تنظیم سریع از طریق خط فرمان دستور زیر را اجرا کنید:
rustdesk --config '{"host":"YOUR_IP","key":"YOUR_PUBLIC_KEY"}'