خادم سطح مكتب بعيد على Linux: إعداد X11VNC ودايمون RustDesk

تحاول السماح لأشخاص (أو لنفسك) بالاتصال بسطح مكتب Linux بشكل موثوق وآمن وبدون المرور عبر خدمات تجارية مكلفة — والكتيبات التي وجدتها إما غامضة أو موجهة لمستخدمي الواجهات الرسومية. هذا الدليل العملي يشرح نهجين على جانب الخادم: X11VNC للجلسات المحلية، ودايمون RustDesk (hbbs/hbbr) لتجاوز NAT والريلاي، مع أوامر ووحدات systemd وأمثلة Docker وخطوات تحصين.
تحاول السماح لأشخاص (أو لنفسك) بالاتصال بسطح مكتب Linux بشكل موثوق وآمن وبدون المرور عبر خدمات تجارية مكلفة — والكتيبات التي وجدتها إما غامضة أو موجهة لسحرة الواجهات الرسومية. هذا الدليل يعرض نهجين عمليين على جانب الخادم لخادم سطح مكتب بعيد على Linux: إعداد مثبت وموثوق لـ X11VNC للكشف المباشر عن جلسة X، ودايمون RustDesk المستضاف ذاتيًا (hbbs/hbbr) لتجاوز NAT والريلاي الحديث — مع أوامر فعلية، وحدات systemd، أمثلة Docker، وخطوات تحصين ملموسة.
لماذا تشغيل خادم سطح مكتب بعيد على Linux؟ شجرة قرار سريعة
قبل الخوض في الأوامر: اختر النموذج الذي يناسب احتياجاتك.
- إذا كنت بحاجة إلى وصول مباشر إلى جلسة X الفعلية على جهاز (دعم المستخدم المسجّل، حالة الجلسة المحلية، شاشات متعددة)، فإن X11VNC هو أبسط أداة على جانب الخادم.
- إذا أردت نموذج عميل/خادم يدعم تجاوز NAT، وخوادم ID، والريلاي، وعملاء أسهل عبر الأنظمة الأساسية — وترغب في استضافة مكونات الخادم بنفسك — فشغّل دايمونات RustDesk hbbs/hbbr.
- إذا كنت تريد فقط نفقًا سريعًا لجهاز واحد لدعم لمرة واحدة، فقد يكون نفق SSH أو خدمة مستضافة أسرع. انظر أيضًا دليلنا حول self-hosted-remote-desktop للاستراتيجية والمقايضات.
ملاحظة: المنتجات التجارية مثل TeamViewer وAnyDesk غالبًا ما تتفوق من حيث الراحة الخالصة (تجاوز NAT تلقائيًا وترميزات محسّنة جاهزة للعمل). هي خيارات معقولة إذا كنت بحاجة إلى قابلية تشغيل فورية ودعم تجاري؛ انظر مقارنة المزايا في rustdesk-vs-anydesk.
1) X11VNC: خادم سطح مكتب بعيد بسيط على Linux يعرض جلسة X الفعلية
يتصل X11VNC بخادم X القائم ويقدّم سطح المكتب الحالي. إنه ليس سطح مكتب افتراضي منفصل — بل يعكس واجهة المستخدم الرسومية المحلية المسجّلة. هذا يجعله ممتازًا للدعم عن بُعد والإدارة عندما تريد التفاعل مع نفس الجلسة التي يراها المستخدم المحلي.
المتطلبات والإصدارات الموصى بها
- يعمل على بيئات سطح المكتب القائمة على X11. بالنسبة لـ Wayland، استخدم واجهات API الخاصة بالمركّب أو نهجًا مختلفًا.
- ثبّت x11vnc >= 0.9.16 (يدعم 0.9.16+ ميزات حديثة وتحسينات استقرار).
- تأكد من وجود مدير عرض (gdm/lightdm/sddm) أو جلسة X تعمل على :0.
التثبيت على Debian/Ubuntu (مثال):
sudo apt update sudo apt install -y x11vnc xauth
أنشئ ملف كلمة مرور (خزّنه بأمان):
sudo x11vnc -storepasswd /etc/x11vnc.pass sudo chown root:root /etc/x11vnc.pass sudo chmod 600 /etc/x11vnc.pass
وحدة systemd بسيطة لبدء التشغيل التلقائي على العرض :0 (ضعها كـ /etc/systemd/system/x11vnc.service):
[Unit] Description=x11vnc - VNC server for :0 After=display-manager.service [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -ncache 10 User=root Restart=on-failure [Install] WantedBy=graphical.target
تمكين وبدء الخدمة:
sudo systemctl daemon-reload sudo systemctl enable --now x11vnc.service sudo systemctl status x11vnc.service
ملاحظات الأمان لـ X11VNC
- لا تكشف المنفذ TCP/5900 مباشرة إلى الإنترنت بدون طبقات حماية إضافية. مصادقة VNC مقبولة للشبكات المحلية لكنها ضعيفة على الشبكات العامة.
- فضلًا استخدم نفق SSH للوصول البعيد: ssh -L 5900:localhost:5900 user@your-server ثم اتصل بعميل VNC على localhost:5900.
- إذا احتجت TLS مباشرًا، استخدم stunnel أو VPN. أو ضع VNC خلف جدار ناري مناسب واجعل الوصول عبر VPN فقط.
نصائح الأداء
- استخدم -ncache 10 لتقليل القفزات في النطاق الترددي عند تغير محتوى سطح المكتب بسرعة.
- عندما ترى استهلاك CPU عاليًا على وصلات 1–2 Mbps، خفّض عمق اللون أو استخدم أعلام الضغط (x11vnc يدعم -compresslevel و -quality). جرّب القيم — الجودة الأقل غالبًا تعطي استجابة محسّنة محسوسة.
2) دايمون RustDesk: ريلاي وخادم ID مستضاف ذاتيًا للوصول الحديث عن بُعد
يوفّر RustDesk عميلًا يمكنه استخدام خادم ID مركزي (hbbs) وريلاي (hbbr) لربط الأنداد حتى خلف NAT. تشغيل hbbs/hbbr بنفسك يمنحك تحكمًا كاملاً في المعرفات والريلايات — وهو أمر مهم إذا أردت تجنّب خوادم طرف ثالث. هذا هو إعداد جانب الخادم الذي يقصده معظم الأشخاص عند طلب خادم سطح مكتب بعيد ذاتي الاستضافة.
لماذا تشغيل hbbs/hbbr بدلًا من ثنائي واحد؟ hbbs هو خادم ID (المصادقة والتعيين)، وhbbr هو خادم الريلاي (ريلاي TCP/UDP للوسائط عندما تفشل P2P المباشرة). كلاهما خفيف ويُشغّل شائعًا في Docker.
الإصدارات الموصى بها: استخدم مكونات خادم RustDesk إصدار 1.1.9+ (أو أحدث علامة مستقرة عند نشرك). راجع ملاحظات الإصدارات في مشروع RustDesk قبل الإنتاج.
مثال Docker Compose لـ hbbs + hbbr (بسيط)
version: '3.3'
services:
hbbs:
image: rustdesk/rustdesk-server:1.1.9
container_name: rustdesk_hbbs
restart: unless-stopped
ports:
- "21115:21115/tcp" # hbbs TCP (ID server)
environment:
- RUST_LOG=info
volumes:
- ./data/hbbs:/data
hbbr:
image: rustdesk/rustdesk-server:1.1.9
container_name: rustdesk_hbbr
restart: unless-stopped
ports:
- "21116:21116/tcp" # hbbr TCP (relay)
- "21116:21116/udp" # hbbr UDP for hole punching/relay
environment:
- RUST_LOG=info
volumes:
- ./data/hbbr:/data
ملاحظات حول المنافذ وNAT
- المنافذ الافتراضية الشائعة لـ RustDesk عادة ما تكون 21115 (خادم hbbs للمعرف) و21116 (ريلاي hbbr). UDP مفيد لتجاوز NAT؛ افتح كلا من TCP وUDP حيثما أمكن.
- حافظ على الخادم على عنوان IP عام أو على مضيف بعنوان IP/DNS ثابت. استخدم سجل A/AAAA للاسم المضيف الذي تهيئه في العملاء.
تهيئة جانب العميل
تحصين نشر دايمون RustDesk المستضاف ذاتيًا
حركة مرور RustDesk الافتراضية مشفّرة بين الأنداد، لكن مكونات الخادم تقوم بالمصادقة والتنسيق. ضع في اعتبارك هذه خطوات التحصين:
- شغّل hbbs/hbbr خلف جدار ناري وافتح فقط المنافذ اللازمة (21115 TCP، 21116 TCP/UDP). استخدم UFW أو firewall-cmd؛ مثال: sudo ufw allow 21115/tcp; sudo ufw allow 21116/tcp; sudo ufw allow 21116/udp.
- استخدم TLS/HTTPS لأي واجهة إدارة معرضة للويب تضيفها. إذا أنهيت TLS عند عكس البروكسي (nginx/caddy)، فحافظ على العزل الخلفي.
- راقب السجلات واستهلاك الموارد. مكونات RustDesk خفيفة لكن ستحتاج لمراقبة عدد الاتصالات وعرض النطاق المستخدم في الريلاي.
- ضع في الحسبان تحديد المعدل وfail2ban على المضيف إذا رأيت محاولات هجوم بالقوة الغاشمة ضد منفذ hbbs.
متى تختار RustDesk مقابل X11VNC
- اختر RustDesk عندما تحتاج دعم عملاء عبر الأنظمة الأساسية (Windows/Mac/Linux/Android/iOS)، تجاوز NAT، وخادم معرف/ريلاي مستضاف ذاتيًا لإدارة العديد من النقاط الطرفية. هو حل حديث لأساطيل موزعة.
- اختر X11VNC عندما تخدم أجهزة سطح مكتب محددة وتحتاج التفاعل مع جلسة X المحلية (مثل استكشاف مشاكل المستخدم المسجّل أو مشاكل الإقلاع الرسومي).
ملاحظات عملية للإنتاج وضبط الأداء
النطاق الترددي وCPU: توقع أن جلسات سطح المكتب البعيدة المباشرة تستهلك بين 1–5 Mbps للمهام المكتبية العادية مع ترميزات مضغوطة؛ مشاركة الشاشة لمقاطع فيديو أو ألعاب ستؤدي إلى قفزات أعلى بكثير. إذا استضفت ريلايًا (hbbr)، خصّص عرض نطاق للريلاي: 100 جلسة متزامنة عند 2 Mbps = ~200 Mbps قدرة مستمرة.
المراقبة والقدرة على التوسع التلقائي: للمنظمات الأكبر، شغّل hbbs أمامه HA proxy أو موازن تحميل، وشغّل عدة ريلايات hbbr موزعة جغرافيًا. استخدم تنسيق حاويات قياسي (Docker Swarm أو Kubernetes) إذا احتجت إلى توسع تلقائي؛ وإلا فآلة افتراضية واحدة قوية كافية للفرق الصغيرة.
السجلات واستكشاف الأخطاء
- تظهر سجلات x11vnc في دفتر systemd: sudo journalctl -u x11vnc.service
- حاويات RustDesk: docker logs rustdesk_hbbs و docker logs rustdesk_hbbr لأخطاء بدء التشغيل. تحقق من إمكانية الوصول إلى المنافذ باستخدام ss أو netstat واختبر TCP/UDP من عميل بعيد.
- إذا فشلت الاتصالات المباشرة، أكد أن UDP غير محجوب بواسطة NATات وسيطات أو جدران نارية؛ كثير من مزودي الشبكات المحمولة يحجبون نطاقات UDP غير الشائعة.
مقارنة أمنيّة ووجهة نظر صريحة عن البائعين
إذا كانت الأمان والخصوصية أولوية قصوى، فإن استضافة hbbs/hbbr بنفسك تمنحك السيطرة على البيانات الوصفية ونقاط الريلاي. مع ذلك، قد توفر البائعون المملوكون مثل TeamViewer أو AnyDesk تجاوز NAT أفضل خارج الصندوق، وترميزات ملكية بمعدلات بيانات أقل للوصلات الضعيفة، ودعم/SLAs على مستوى المؤسسات. قد تكون أفضل إذا احتجت دعمًا تجاريًا على مدار الساعة وسهولة إدماج للمستخدمين غير التقنيين — لكن هذه الراحة لها كلفة. راجع anydesk-pricing-explained للاطلاع على الفروقات السعرية والمقايضات.
قائمة فحص عملية قبل التشغيل
- قرّر أي نموذج يناسبك (X11VNC للجلسات الفعلية مقابل RustDesk للوصول القائم على ID/ريلاي).
- حَمِ الإعداد: جدار ناري، مفاتيح SSH فقط، fail2ban لتحديد المعدل، وTLS حيثما ينطبق.
- اختبر من خارج شبكتك: تحقّق من سلوك الريلاي، الكمون، والتبديل عند الفشل.
- اضبط المراقبة (السجلات، النطاق، إعادة تشغيل العمليات) وسياسة تنبيه للحوادث.
مطالعة إضافية وموارد داخلية
إذا كنت تقيم خيارات الاستضافة الذاتية والمقايضات، اطلع على دليلنا self-hosted-remote-desktop. للمقارنة المركزة بين RustDesk والخيارات التجارية، انظر rustdesk-vs-anydesk.
ملاحظات عملية نهائية
كلا النهجين قابلان للصيانة، لكنهما يحلون مشكلات مختلفة قليلاً. X11VNC بسيط ومتوقع لأجهزة مفردة؛ دايمونات RustDesk تتوسع أفضل للأساطيل وتتعامل مع تجاوز NAT بسلاسة عند تهيئتها بشكل صحيح. في جميع الأحوال، لا تكشف VNC غير مشفّر مباشرة إلى الإنترنت — استخدم دائمًا أنفاق SSH أو VPN أو ريلاي محصّن بشكل صحيح.
جاهز لتجربته بنفسك؟ حمّل عملاء Tenvo (godeskflow) أو اطلع على وثائق الخادم لدينا في /download — وإذا احتجت خيارات تسعير أو مؤسساتية، راجع /pricing. قم بنشر نسخة اختبار، اختبر قواعد الجدار الناري، وتحقق من سلوك العملاء قبل النشر النهائي للمستخدمين.
مستعد لتجربته بنفسك؟
مجانًا حتى 30 جهازًا، دون بطاقة ائتمان. جاهز ومتصِل في دقيقتين.