DeskVNCServer - الدليل

قم بتشغيل خادم VNC قياسي على جهاز Mac الخاص بك وشارك الشاشة والحافظة والملفات وحتى IME مع QuickRemote — كل ذلك عبر الشبكة المحلية، دون الحاجة إلى مرحل سحابي.


البدء

1. تعيين كلمة مرور

افتح الإعدادات (أيقونة الترس في شريط الأدوات السفلي) واملأ VNC password. تستخدم عملاء VNC القياسيون تحدي RFB DES، الذي لا يتعامل إلا مع أول 8 بايتات متوافقة مع ASCII — اختر كلمة مرور لا تتجاوز 8 أحرف.

حول كلمات المرور القصيرة: هذا قيد في بروتوكول RFB نفسه، وليس قيدًا في DeskVNCServer. إذا كنت بحاجة إلى مصادقة أقوى، فقم بحصر الخادم على شبكة خاصة أو استخدم مسار QREX (رمز Bearer بعد إقران PIN) وتعطيل كلمة مرور VNC.

2. تشغيل الخادم

  1. في النافذة الرئيسية، انقر على Start. يتحول مؤشر الحالة إلى Running.
  2. تنطلق أربعة مستمعين في الوقت نفسه: VNC 5900، QREX control 5911، QREX media 4010، وFile API 8766.
  3. انقر على Copy Info لنسخ سطر واحد يحتوي على المضيف والمنافذ ورمز PIN الحالي إلى الحافظة.

3. توصيل العميل

لعارض VNC قياسي (macOS Screen Sharing، RealVNC، TightVNC، تطبيقات VNC للهواتف المحمولة):

  1. افتح العارض وأدخل vnc://<your-mac-ip>:5900 كعنوان
  2. اكتب VNC password التي عيّنتها في الخطوة 1
  3. تحكم في جهاز Mac على الفور — لوحة المفاتيح والماوس والنسخ/اللصق عبر RFB

لتطبيق QuickRemote:

  1. افتح QuickRemote على الهاتف أو الجهاز اللوحي، واختر Add Mac
  2. أدخل رمز الإقران المكوّن من 6 أرقام الذي يعرضه DeskVNCServer (أو امسح رمز QR ضوئيًا إذا كان إصدار QuickRemote لديك يدعمه)
  3. يخزّن QuickRemote رمز Bearer المُرجَع ويُفعّل الميزات الموسّعة — IME والصوت ومزامنة الحافظة ونقل الملفات

نظرة عامة على الواجهة

صف الحالة

العنصرالوصف
تسمية الخادمتُعرّف هذه اللوحة.
شارة الحالةRunning أثناء نشاط المستمعين، وStopped فيما عدا ذلك.

أزرار الإجراءات

  • Start — يقوم بتشغيل جميع المستمعين الأربعة.
  • Stop — يغلق كل مستمع ويفصل الجلسات النشطة.
  • Copy Info — ينسخ ملخصًا قصيرًا للاتصال (المضيف، منفذ VNC، منفذ التحكم، رمز PIN) إلى الحافظة لتسهيل مشاركته مع العميل.

لوحة الاتصال

تعرض مضيف الربط والمنافذ ومُعرّف Server ID الحالي ورمز PIN الإقران النشط. يتم تحديث النص تلقائيًا عند تغيير الإعدادات.

لوحة QuickRemote API

مرجع سريع للبروتوكولات التي يتحدث بها الخادم. تسرد إصدارات RFB المدعومة وأشكال نقاط نهاية QREX ومجموعة أوامر IME حتى يعرف QuickRemote (أو عميلك الخاص) ما هو متاح.


البروتوكولات والمنافذ

الخدمةالمنفذ الافتراضيالبروتوكوليستخدمها
VNC / RFBTCP 5900RFB 3.8 / 3.7 / 3.3أي عميل VNC قياسي
QREX controlTCP 5911HTTP JSON RPC + WebSocketQuickRemote وعملاء QREX الآخرون
QREX mediaUDP 4010حزم متوافقة مع QuickRemoteرسائل IME وبث الصوت
File APITCP 8766HTTP متوافق مع QuickRemoteتصفح الملفات ونقلها

المصادقة

  • عملاء VNC — كلمة مرور RFB DES (أول 8 بايتات متوافقة مع ASCII من كلمة المرور المهيأة).
  • عملاء QREX — تبادل أولي لرمز PIN مكوّن من 6 أرقام عند POST /qr/v1/pair يُعيد رمز Bearer. يجب أن يتضمن كل استدعاء QREX HTTP لاحق وكل إطار WebSocket Authorization: Bearer <token>.
  • إذا كانت VNC password فارغة، يعلن الخادم عن وضع RFB no-auth القياسي. مفيد فقط لشرائح LAN الموثوقة.

مرجع سريع لنقاط نهاية QREX

GET  /qr/v1/capabilities    # public, returns supported features
POST /qr/v1/pair            # public, exchange PIN for Bearer token
GET  /qr/v1/ws              # WebSocket, auth required
POST /qr/v1/ime/get         # auth required, query active IME
POST /qr/v1/ime/list        # auth required, list available IMEs
POST /qr/v1/ime/set         # auth required, switch IME
POST /qr/v1/ime/toggle      # auth required, toggle IME on/off
POST /qr/v1/ime/commit      # auth required, commit a text string

الإعدادات

الإعدادالافتراضيالوصف
Bind host0.0.0.0الواجهة التي يستمع إليها. اضبطه على 127.0.0.1 للاقتصار على المضيف المحلي.
VNC port5900منفذ TCP لمستمع RFB القياسي.
QREX control port5911منفذ TCP لحركة مرور HTTP + WebSocket الخاصة بـ QREX.
QREX media UDP port4010منفذ UDP لحزم القناة الجانبية لـ IME والصوت.
QuickRemote file API port8766منفذ TCP لواجهة برمجة تصفح الملفات ونقلها.
VNC password(فارغة)حتى 8 بايتات متوافقة مع ASCII. فارغ يعني no-auth على قناة VNC.
QREX bearer token(مُولَّد)الرمز النشط الصادر عند الإقران. أعد إنشاءه بإعادة الإقران أو بتعديل هذا الحقل.
Pairing PIN(مُولَّد)رمز PIN المكوّن من 6 أرقام يُعرض على QuickRemote أثناء الإقران. يتغيّر عند إعادة التوليد.
Stable server ID(مُولَّد)مُعرّف طويل الأمد يستخدمه QuickRemote للتعرّف على هذا الـ Mac.
Start server automaticallyOffتشغيل المستمعين عند إطلاق التطبيق.
Allow remote keyboard and mouseOnأوقفه لتصبح الجلسات للعرض فقط.
Enable IME bridgeOnالسماح لعملاء QREX بالاستعلام عن طريقة إدخال macOS والتحكم فيها.
Enable audio APIOffالسماح ببث صوت Opus عبر QREX media UDP. متوقف افتراضيًا للتوفير في وحدة المعالجة المركزية.
Enable clipboard syncOnعكس محتويات الحافظة بين Mac والعميل البعيد.
Enable file transferOnالسماح لـ QuickRemote بسرد الملفات وقراءتها. للقراءة فقط ما لم يتم تمكين التعديلات أيضًا.
Enable file mutationsOffالسماح بالتحميل وإعادة التسمية والحذف. متوقف افتراضيًا — فعّله فقط للعملاء الموثوقين.
Max frame width1440الحد الأقصى لعرض التقاط الشاشة. القيم الأقل تقلل عرض النطاق الترددي.
Max frame height900الحد الأقصى لارتفاع التقاط الشاشة.
Frame rate12عدد الإطارات المستهدف في الثانية المُرسَل إلى العملاء.

أمثلة على العملاء

macOS Screen Sharing

  1. Finder → Go → Connect to Server
  2. اكتب vnc://<your-mac-ip>:5900
  3. أدخل VNC password

cURL — اكتشاف الإمكانيات

curl http://<your-mac-ip>:5911/qr/v1/capabilities

cURL — الإقران واستدعاء جسر IME

# 1. Exchange the PIN for a Bearer token
TOKEN=$(curl -s http://<your-mac-ip>:5911/qr/v1/pair \
  -H "Content-Type: application/json" \
  -d '{"pin":"123456"}' | jq -r .token)

# 2. Commit text via the IME bridge
curl http://<your-mac-ip>:5911/qr/v1/ime/commit \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello from remote"}'

نصائح

  • قلل معدل الإطارات والحد الأقصى لأبعاد الإطار عند استخدام اتصال Wi-Fi بطيء أو توجيه الاتصال عبر VPN.
  • قم بإقران كل جهاز مرة واحدة. بعد تبادل PIN الأولي، يبقى رمز Bearer بعد إعادة التشغيل، لذا يعيد QuickRemote الاتصال بصمت.
  • استخدم Copy Info كطريقة سريعة لإرسال تفاصيل الاتصال عبر الدردشة أو البريد الإلكتروني — فهو يتضمن كل ما يحتاجه العميل.
  • اترك Enable file mutations متوقفًا ما لم تكن بحاجة فعلية إلى عمليات التحميل. وضع القراءة فقط يكفي لتصفح لقطات الشاشة أو الملاحظات أو التنزيلات.
  • عطّل واجهة برمجة الصوت عندما لا تستخدمها. لا تزال أكواد الترميز الخاملة تكلّف قدرًا صغيرًا من وحدة المعالجة المركزية في مسار الترميز.

استكشاف الأخطاء وإصلاحها

الخادم لا يبدأ

  • قد يكون خادم VNC آخر (مثل macOS Screen Sharing) يعمل بالفعل على المنفذ 5900. أوقفه من System Settings → General → Sharing، أو غيّر المنفذ في إعدادات DeskVNCServer.
  • يجب أن تكون المنافذ 5911 / 4010 / 8766 جميعها متاحة. تحقق باستخدام lsof -i :5911 ونظائرها.

عملاء VNC يفشلون في المصادقة

  • تأكد من أن كلمة المرور لا تتجاوز 8 بايتات متوافقة مع ASCII. الأحرف متعددة البايت أو السلاسل الأطول تُقتطع بصمت بواسطة مصادقة RFB DES.
  • إذا كنت ترغب عمدًا في عدم وجود كلمة مرور، فاترك الحقل فارغًا واتصل بعارض يدعم VNC no-auth.

QuickRemote لا يستطيع الإقران

  • تأكد من أن الهاتف أو الجهاز اللوحي متصل بنفس Wi-Fi مثل Mac.
  • افتح لوحة الاتصال وأعد قراءة رمز PIN. يمكن إعادة توليد PIN من الإعدادات.
  • تحقق من إعدادات جدار حماية macOS — يجب السماح بالاتصالات الواردة على منافذ QREX.

التحكم عن بُعد يبدو بطيئًا

  • قلل معدل الإطارات والحد الأقصى لأبعاد الإطار في الإعدادات.
  • عطّل الميزات التي لا تستخدمها (الصوت، الحافظة، IME) لتحرير وحدة المعالجة المركزية.

الملفات لا تُنقل

  • تأكد من أن Enable file transfer مفعّل. تعمل قوائم القراءة فقط بدون Enable file mutations.
  • إذا فشلت عمليات التحميل، فعّل أيضًا Enable file mutations. وإلا فإن File API يستجيب فقط لطلبات القراءة.

الخصوصية

  • تجري جميع الجلسات مباشرة بين العميل وجهاز Mac الخاص بك. لا يوجد مرحل سحابي ولا تتبع ولا تحليلات.
  • تُخزَّن كلمة مرور VNC ورمز Bearer الخاص بـ QREX ورمز PIN الإقران ومُعرّف Server ID الثابت فقط في إعدادات التطبيق المحلية.
  • تعديلات الملفات متوقفة افتراضيًا. لا يستطيع العملاء البعيدون سوى القراءة حتى تمنح بصراحة صلاحية الكتابة.
  • عطّل أي امتداد (الصوت، الحافظة، نقل الملفات، IME، الإدخال البعيد) في أي وقت لإلغاء تلك الإمكانية على الفور.
  • إذا كنت تريد إبقاء الخادم محليًا على جهاز Mac الخاص بك، فاضبط مضيف الربط على 127.0.0.1.