قم بتشغيل خادم VNC قياسي على جهاز Mac الخاص بك وشارك الشاشة والحافظة والملفات وحتى IME مع QuickRemote — كل ذلك عبر الشبكة المحلية، دون الحاجة إلى مرحل سحابي.
البدء
1. تعيين كلمة مرور
افتح الإعدادات (أيقونة الترس في شريط الأدوات السفلي) واملأ VNC password. تستخدم عملاء VNC القياسيون تحدي RFB DES، الذي لا يتعامل إلا مع أول 8 بايتات متوافقة مع ASCII — اختر كلمة مرور لا تتجاوز 8 أحرف.
حول كلمات المرور القصيرة: هذا قيد في بروتوكول RFB نفسه، وليس قيدًا في DeskVNCServer. إذا كنت بحاجة إلى مصادقة أقوى، فقم بحصر الخادم على شبكة خاصة أو استخدم مسار QREX (رمز Bearer بعد إقران PIN) وتعطيل كلمة مرور VNC.
2. تشغيل الخادم
- في النافذة الرئيسية، انقر على Start. يتحول مؤشر الحالة إلى Running.
- تنطلق أربعة مستمعين في الوقت نفسه: VNC
5900، QREX control5911، QREX media4010، وFile API8766. - انقر على Copy Info لنسخ سطر واحد يحتوي على المضيف والمنافذ ورمز PIN الحالي إلى الحافظة.
3. توصيل العميل
لعارض VNC قياسي (macOS Screen Sharing، RealVNC، TightVNC، تطبيقات VNC للهواتف المحمولة):
- افتح العارض وأدخل
vnc://<your-mac-ip>:5900كعنوان - اكتب VNC password التي عيّنتها في الخطوة 1
- تحكم في جهاز Mac على الفور — لوحة المفاتيح والماوس والنسخ/اللصق عبر RFB
لتطبيق QuickRemote:
- افتح QuickRemote على الهاتف أو الجهاز اللوحي، واختر Add Mac
- أدخل رمز الإقران المكوّن من 6 أرقام الذي يعرضه DeskVNCServer (أو امسح رمز QR ضوئيًا إذا كان إصدار QuickRemote لديك يدعمه)
- يخزّن QuickRemote رمز Bearer المُرجَع ويُفعّل الميزات الموسّعة — IME والصوت ومزامنة الحافظة ونقل الملفات
نظرة عامة على الواجهة
صف الحالة
| العنصر | الوصف |
|---|---|
| تسمية الخادم | تُعرّف هذه اللوحة. |
| شارة الحالة | Running أثناء نشاط المستمعين، وStopped فيما عدا ذلك. |
أزرار الإجراءات
- Start — يقوم بتشغيل جميع المستمعين الأربعة.
- Stop — يغلق كل مستمع ويفصل الجلسات النشطة.
- Copy Info — ينسخ ملخصًا قصيرًا للاتصال (المضيف، منفذ VNC، منفذ التحكم، رمز PIN) إلى الحافظة لتسهيل مشاركته مع العميل.
لوحة الاتصال
تعرض مضيف الربط والمنافذ ومُعرّف Server ID الحالي ورمز PIN الإقران النشط. يتم تحديث النص تلقائيًا عند تغيير الإعدادات.
لوحة QuickRemote API
مرجع سريع للبروتوكولات التي يتحدث بها الخادم. تسرد إصدارات RFB المدعومة وأشكال نقاط نهاية QREX ومجموعة أوامر IME حتى يعرف QuickRemote (أو عميلك الخاص) ما هو متاح.
البروتوكولات والمنافذ
| الخدمة | المنفذ الافتراضي | البروتوكول | يستخدمها |
|---|---|---|---|
| VNC / RFB | TCP 5900 | RFB 3.8 / 3.7 / 3.3 | أي عميل VNC قياسي |
| QREX control | TCP 5911 | HTTP JSON RPC + WebSocket | QuickRemote وعملاء QREX الآخرون |
| QREX media | UDP 4010 | حزم متوافقة مع QuickRemote | رسائل IME وبث الصوت |
| File API | TCP 8766 | HTTP متوافق مع QuickRemote | تصفح الملفات ونقلها |
المصادقة
- عملاء VNC — كلمة مرور RFB DES (أول 8 بايتات متوافقة مع ASCII من كلمة المرور المهيأة).
- عملاء QREX — تبادل أولي لرمز PIN مكوّن من 6 أرقام عند
POST /qr/v1/pairيُعيد رمز Bearer. يجب أن يتضمن كل استدعاء QREX HTTP لاحق وكل إطار WebSocketAuthorization: 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 host | 0.0.0.0 | الواجهة التي يستمع إليها. اضبطه على 127.0.0.1 للاقتصار على المضيف المحلي. |
| VNC port | 5900 | منفذ TCP لمستمع RFB القياسي. |
| QREX control port | 5911 | منفذ TCP لحركة مرور HTTP + WebSocket الخاصة بـ QREX. |
| QREX media UDP port | 4010 | منفذ UDP لحزم القناة الجانبية لـ IME والصوت. |
| QuickRemote file API port | 8766 | منفذ TCP لواجهة برمجة تصفح الملفات ونقلها. |
| VNC password | (فارغة) | حتى 8 بايتات متوافقة مع ASCII. فارغ يعني no-auth على قناة VNC. |
| QREX bearer token | (مُولَّد) | الرمز النشط الصادر عند الإقران. أعد إنشاءه بإعادة الإقران أو بتعديل هذا الحقل. |
| Pairing PIN | (مُولَّد) | رمز PIN المكوّن من 6 أرقام يُعرض على QuickRemote أثناء الإقران. يتغيّر عند إعادة التوليد. |
| Stable server ID | (مُولَّد) | مُعرّف طويل الأمد يستخدمه QuickRemote للتعرّف على هذا الـ Mac. |
| Start server automatically | Off | تشغيل المستمعين عند إطلاق التطبيق. |
| Allow remote keyboard and mouse | On | أوقفه لتصبح الجلسات للعرض فقط. |
| Enable IME bridge | On | السماح لعملاء QREX بالاستعلام عن طريقة إدخال macOS والتحكم فيها. |
| Enable audio API | Off | السماح ببث صوت Opus عبر QREX media UDP. متوقف افتراضيًا للتوفير في وحدة المعالجة المركزية. |
| Enable clipboard sync | On | عكس محتويات الحافظة بين Mac والعميل البعيد. |
| Enable file transfer | On | السماح لـ QuickRemote بسرد الملفات وقراءتها. للقراءة فقط ما لم يتم تمكين التعديلات أيضًا. |
| Enable file mutations | Off | السماح بالتحميل وإعادة التسمية والحذف. متوقف افتراضيًا — فعّله فقط للعملاء الموثوقين. |
| Max frame width | 1440 | الحد الأقصى لعرض التقاط الشاشة. القيم الأقل تقلل عرض النطاق الترددي. |
| Max frame height | 900 | الحد الأقصى لارتفاع التقاط الشاشة. |
| Frame rate | 12 | عدد الإطارات المستهدف في الثانية المُرسَل إلى العملاء. |
أمثلة على العملاء
macOS Screen Sharing
- Finder → Go → Connect to Server
- اكتب
vnc://<your-mac-ip>:5900 - أدخل 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.