فرصت مطالعه ندارید؟ چکیده این مطلب را همینجا گوش دهید:
مدیریت سیستمها از راه دور یکی از نیازهای اصلی پشتیبانان فنی، توسعهدهندگان و کاربران عادی است. ابزارهای تجاری موجود اگرچه کارآمد هستند، اما محدودیتهای گوناگونی از جمله هزینههای بالا یا وابستگی به سرورهای شخص ثالث دارند. نرمافزار RustDesk یک راهحل متنباز (Open-Source) برای دسکتاپ ریموت است که به طور کامل با زبان برنامهنویسی Rust نوشته شده و به شما اجازه میدهد کنترلی کامل روی دادهها و سرورهای خود داشته باشید بدون اینکه نگران امنیت یا محدودیتهای مرسوم باشید.
| نام ابزار | RustDesk |
|---|---|
| زبان برنامهنویسی اصلی | Rust و Dart (برای رابط کاربری Flutter) |
| مجوز (License) | AGPL-3.0 |
| نوع میزبانی | قابلیت میزبانی شخصی (Self-Hosting) و استفاده از سرورهای عمومی |
| پلتفرمهای پشتیبانیشده | Windows, Linux, macOS, Android, iOS |
| وضعیت دسترسی ایران | بدون محدودیت سیستمی (دسترسی به مخازن و سایت اصلی برقرار است) |
RustDesk چیست و چه مشکلی را حل میکند؟
این پروژه به عنوان یک جایگزین مدرن و آزاد برای ابزارهایی مثل TeamViewer و AnyDesk توسعه یافته است. مشکل اصلی ابزارهای سنتی این است که ترافیک و اتصال شما از طریق سرورهای شرکت سازنده هدایت میشود و در نسخههای رایگان با قطعیهای مکرر یا محدودیت زمانی مواجه میشوید. راستدسک با ارائه معماری P2P (همتا به همتا) و امکان راهاندازی سرور اختصاصی (Rendezvous/Relay Server)، حریم خصوصی شما را تضمین میکند و کارایی بالایی در انتقال تصویر و صدا ارائه میدهد.

معماری و ساختار فایلهای پروژه
اگر قصد دارید کدهای پروژه را بررسی کنید یا در توسعه آن مشارکت داشته باشید، آشنایی با ساختار پوشهها و ماژولها بسیار مفید خواهد بود:
- libs/hbb_common: شامل کدهای مشترک بین کلاینت و سرور نظیر کدک ویدیو، تنظیمات و پکیجهای ارتباطی TCP/UDP.
- libs/base: توابع مربوط به سیستم فایل برای انتقال فایل، کدهای پلتفرم و مدیریت کیبورد.
- libs/scrap: ماژول تخصصی برای گرفتن اسکرینشات و ضبط صفحه نمایش.
- libs/enigo: کنترل موس و کیبورد به صورت وابسته به سیستمعامل.
- libs/clipboard: پیادهسازی قابلیت کپی و پیست فایل و متن برای سیستمعاملهای مختلف.
- src/server: سرویسهای مربوط به صوت، کلیپبرد، ورودیها و اتصالات شبکه.
- flutter: کدهای مربوط به رابط کاربری فلاتر برای دسکتاپ و موبایل.
آموزش ساخت و کامپایل روی لینوکس
اگر مایل هستید این ابزار را شخصاً روی سیستمعامل لینوکس کامپایل کنید، مراحل زیر مسیر کار را برای شما هموار میسازد. ابتدا باید ابزارهای توسعه و وابستگیها را بسته به توزیع خود نصب کنید.
نصب وابستگیها در توزیعهای مختلف
دستور زیر را متناسب با توزیع لینوکسی خود در ترمینال اجرا کنید:
اوبونتو / دبیان:
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-devآرچ لینوکس / مانجارو:
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewireآمادهسازی Vcpkg و کامپایل نهایی
پس از نصب بستههای پیشنیاز، ابزار مدیریت پکیج vcpkg را کلون کرده و کتابخانههای مورد نیاز را آماده کنید:
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aomاین دستورات ابزار vcpkg را در نسخه مشخص شده دریافت کرده و کتابخانههای رمزگذاری ویدیو و صوت مثل libvpx و opus را نصب میکند. حالا میتوانید مخزن اصلی را دریافت کرده و پروژه را اجرا نمایید:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo runبا اجرای این دستورات محیط Rust روی سیستم شما آماده شده، سورس کد دریافت و برنامه در حالت توسعه اجرا میشود.

استفاده از داکر (Docker) برای بیلد آسانتر
اگر نمیخواهید درگیر نصب کتابخانههای سنگین روی سیستم میزبان شوید، استفاده از داکر امنترین و سریعترین راه است. کافیست مخزن را کلون کرده و تصویر داکر را بسازید:
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
git submodule update --init --recursive
docker build -t "rustdesk-builder" .پس از ساخت تصویر کانتینر، برای کامپایت کردن پروژه در دفعات بعدی از دستور زیر استفاده کنید:
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builderخروجی این فرآیند فایل اجرایی برنام خواهد بود که میتوانید آن را از پوشه target اجرا کنید:
target/debug/rustdesk
پرسشهای متداول
آیا استفاده از RustDesk کاملاً رایگان است؟
بله، این پروژه تحت مجوز آزاد AGPL-3.0 منتشر شده و استفاده از نسخه پایه و سورسکد آن هیچ هزینهای ندارد.
آیا میتوانم سرور رله اختصاصی خودم را راهاندازی کنم؟
قطعا؛ نرمافزار به گونهای طراحی شده که میتوانید سرور رندهوویو اختصاصی خود را روی هاست شخصی بالا بیاورید تا اتصالات کاملاً ایزوله بمانند.
آیا برنامه از انتقال فایل پشتیبانی میکند؟
بله، ماژول انتقال فایل به صورت پیشفرض درون برنامه تعبیه شده است و میتوانید به راحتی فایلها را میان سیستم مبدأ و مقصد جابهجا کنید.
جمعبندی
نرمافزار RustDesk با تکیه بر قدرت زبان Rust و معماری متنباز، به یکی از بهترین گزینهها برای جایگزینی ابزارهای انحصاری دسکتاپ ریموت تبدیل شده است. امکان کنترل کامل روی دادهها، عدم وابستگی به سرورهای خارجی و پایداری بالا از ویژگیهایی است که ارزش امتحان کردن این ابزار را دوچندان میکند. اگر به امنیت و حریم خصوصی ارتباطات راه دور خود اهمیت میدهید، این پروژه انتخابی ایدهآل خواهد بود.



