أقسام الوصول السريع (مربع البحث)

📁 آخر الأخبار

الدليل الشامل لتثبيت Apache Guacamole: التحكم عن بُعد بالأجهزة من المتصفح

 الوصول إلى جهازك من أي مكان دون تثبيت برنامج للتحكم عن  بُعد

إذا كنت تدير أكثر من جهاز كمبيوتر أو خادم، فغالبًا ستحتاج في وقت ما إلى الوصول إلى أحدها عن بُعد. المشكلة أن أدوات التحكم التقليدية تتطلب في كثير من الأحيان تثبيت برنامج خاص على الجهاز الذي تستخدمه، وقد تضطر إلى التعامل مع أدوات مختلفة حسب نوع الجهاز أو البروتوكول المستخدم.

هنا تأتي فكرة Apache Guacamole بطريقة مختلفة؛ فهو يوفر واجهة ويب تتيح لك الوصول إلى أجهزة الكمبيوتر والخوادم البعيدة من خلال متصفح الإنترنت، بدل الاعتماد على برنامج عميل منفصل على جهازك. ويمكن استخدامه مع بروتوكولات معروفة مثل RDP وVNC وSSH، لذلك تستطيع من خلال واجهة واحدة الوصول إلى أجهزة Windows أو جلسات Linux الطرفية وغيرها من الأنظمة التي تدعم البروتوكولات المتوافقة.

لكن Guacamole ليس برنامجًا تقوم بتثبيته على جهاز Windows ثم تبدأ بالتحكم في الأجهزة مباشرة. هذه نقطة مهمة لفهم البرنامج: Guacamole عبارة عن منصة ويب تعمل على خادم، وتتولى الوساطة بين المتصفح والجهاز البعيد. لذلك فإن إعدادها يحتاج إلى فهم بسيط للخادم والشبكة وقاعدة البيانات والبروتوكول الذي ستستخدمه.

الدليل الشامل لتثبيت Apache Guacamole: التحكم عن بُعد بالأجهزة من المتصفح
Apache Guacamole للتحكم عن بُعد بالأجهزة من المتصفح

في هذا الدليل سنبدأ من الصفر، ونشرح ما هو Apache Guacamole وكيف يعمل، وما الذي تحتاج إليه قبل تثبيته، ثم نشرحه باستخدام Docker بطريقة مناسبة للمبتدئين، وبعد ذلك سننشئ أول اتصال بجهاز Windows عبر RDP، ونوضح أيضًا طريقة الاتصال بخوادم Linux عبر SSH، مع أهم الإعدادات والنصائح الأمنية وحلول المشاكل الشائعة.

ما هو Apache Guacamole؟

Apache Guacamole هو تطبيق ويب مفتوح المصدر يوفر الوصول إلى أجهزة الكمبيوتر والأنظمة البعيدة من خلال متصفح الإنترنت.

فبدل أن يكون لديك برنامج منفصل للاتصال عبر RDP وبرنامج آخر لـ VNC وأداة ثالثة لـ SSH، يعمل Guacamole كواجهة موحدة تتعامل مع هذه البروتوكولات من خلال الخادم.

وهذا يعني أنك تستطيع فتح متصفح مثل Chrome أو Edge أو Firefox، والدخول إلى واجهة Guacamole، ثم اختيار الاتصال الذي أنشأته مسبقًا. بعد ذلك يتولى الخادم عملية الاتصال بالجهاز المستهدف ويعرض الجلسة داخل المتصفح.

ومن المهم توضيح أن Guacamole ليس نظام تشغيل افتراضيًا، وليس جهازًا بعيدًا بحد ذاته، وليس بروتوكول RDP جديدًا. هو طبقة وصول وإدارة تعمل فوق بروتوكولات الاتصال الموجودة أصلًا.

صورة واجهة Apache Guacamole التحكم عن بُعد بالأجهزة
واجهة Apache Guacamole التحكم عن بُعد بالأجهزة

على سبيل المثال، إذا أردت الوصول إلى جهاز Windows باستخدام RDP، تكون الصورة ببساطة:

جهازك
   │ متصفح الإنترنت
   ▼
Apache Guacamole
   │
   ▼
guacd
   │ RDP
   ▼
جهاز Windows البعيد

أما عند الاتصال بخادم Linux عبر SSH:

جهازك
   │ المتصفح
   ▼
Apache Guacamole
   │
   ▼
guacd
   │ SSH
   ▼
خادم Linux

وهذا الفصل بين الواجهة والبروتوكول هو أحد أهم الأشياء التي يجب فهمها قبل البدء في التثبيت.

كيف يعمل Apache Guacamole؟

يتكون Guacamole في عملية النشر المعتادة من عدة مكونات تعمل معًا، ولكل مكون وظيفة مختلفة.

واجهة Guacamole

وهي الجزء الذي تراه في المتصفح. من خلالها تسجل الدخول، وتشاهد الاتصالات المتاحة، وتنشئ الاتصالات وتدير المستخدمين والصلاحيات. guacd 

وهو Guacamole proxy daemon، ويعتبر حلقة الوصل التي تتعامل مع بروتوكولات الاتصال بالأجهزة البعيدة.

عندما تنشئ اتصال RDP مثلًا، لا يقوم المتصفح نفسه بإنشاء اتصال RDP مباشر مع جهاز Windows. بدلًا من ذلك، يتولى guacd عملية الاتصال بالبروتوكول المطلوب.

قاعدة البيانات

عند استخدام المصادقة المعتمدة على قاعدة البيانات، تُخزن معلومات المستخدمين والاتصالات والإعدادات المتعلقة بها في قاعدة بيانات مثل MySQL أو MariaDB أو PostgreSQL.

وبذلك يمكن تصور البنية الأساسية بالشكل التالي:

             المتصفح
                │
                ▼
       ┌─────────────────┐
       │ Apache Guacamole │
       └────────┬────────┘
                │
                ▼
             guacd
          ┌─────┼─────┐
          │     │     │
         RDP   SSH    VNC
          │     │     │
          ▼     ▼     ▼
      Windows  Linux  جهاز VNC
               
                │
                ▼
          قاعدة البيانات

هذه البنية تفسر لماذا لا يكفي تثبيت Guacamole وحده؛ فكل جزء يؤدي وظيفة محددة داخل المنظومة.

لماذا قد تحتاج إلى Guacamole؟

الفائدة الأساسية من Guacamole هي توفير نقطة وصول واحدة للأجهزة والخوادم البعيدة من خلال المتصفح.

إذا كنت تدير عدة أجهزة، فقد يصبح من المزعج تثبيت أدوات مختلفة أو تذكر طريقة الاتصال بكل جهاز. أما باستخدام Guacamole، فيمكنك إنشاء الاتصالات داخل الواجهة وتسميتها بطريقة واضحة، ثم الوصول إليها من مكان واحد.

ومن الاستخدامات العملية للبرنامج:

  • إدارة أجهزة Windows عن بُعد باستخدام RDP.
  • الوصول إلى خوادم Linux من خلال SSH.
  • الوصول إلى أنظمة تعتمد على VNC.
  • إدارة عدة اتصالات من واجهة ويب واحدة.
  • السماح لعدة مستخدمين بالوصول إلى اتصالات محددة وفق الصلاحيات.
  • الوصول إلى الخوادم من جهاز لا يحتوي على برنامج RDP أو SSH مخصص.
  • استخدام المتصفح على الكمبيوتر أو الهاتف أو الجهاز اللوحي للوصول إلى واجهة Guacamole.

وتزداد فائدته عندما يكون لديك خادم مركزي تريد استخدامه كبوابة للوصول إلى مجموعة من الأجهزة بدل إدارة أدوات اتصال منفصلة لكل جهاز.

أهم مميزات Apache Guacamole

العمل من المتصفح

الميزة الأوضح هي أن المستخدم لا يحتاج إلى تثبيت عميل RDP أو VNC أو SSH على جهازه للوصول إلى الجلسة من خلال Guacamole.

كل ما يحتاج إليه هو متصفح واتصال بخادم Guacamole.

دعم أكثر من بروتوكول

يمكن استخدام Guacamole مع بروتوكولات متعددة، وأشهرها RDP وVNC وSSH، بالإضافة إلى بروتوكولات أخرى يدعمها guacd.

وهذا يجعله مناسبًا لبيئات تحتوي على أجهزة وأنظمة مختلفة.

إدارة الاتصالات من مكان واحد

بدل الاحتفاظ بعشرات الإعدادات في برامج منفصلة، يمكنك إنشاء الاتصالات داخل Guacamole وتنظيمها بأسماء واضحة.

إدارة المستخدمين والصلاحيات

يمكن إنشاء مستخدمين ومجموعات وتحديد الاتصالات التي يستطيع كل مستخدم الوصول إليها، وهو أمر مهم عند استخدام Guacamole في بيئة مشتركة.

دعم نقل الملفات

تتوفر وظائف نقل الملفات في الاتصالات التي يدعم فيها البروتوكول المستخدم هذه الإمكانية، مثل بعض حالات RDP وVNC وSSH.

مناسب للوصول من أجهزة مختلفة

لأن واجهته تعتمد على الويب، يمكنك الوصول إليها من الكمبيوتر أو الهاتف أو الجهاز اللوحي، دون الحاجة إلى تثبيت برنامج العميل الخاص بالبروتوكول على كل جهاز.

مفتوح المصدر

Apache Guacamole مشروع مفتوح المصدر تابع لمؤسسة Apache Software Foundation، ويمكن استخدامه وتخصيصه وفق ترخيص المشروع.

عيوب Guacamole التي يجب معرفتها

رغم أن فكرة البرنامج بسيطة من جهة المستخدم، فإن التثبيت والإعداد الأولي ليسا بالبساطة نفسها.

أول ما يجب معرفته هو أن Guacamole يحتاج إلى خادم يعمل عليه. لذلك فهو ليس مثل تطبيق صغير تثبته على Windows ثم تستخدمه مباشرة.

كما تحتاج إلى إعداد guacd وآلية للمصادقة، وعند استخدام قاعدة البيانات ستحتاج إلى تهيئة قاعدة البيانات قبل تسجيل الدخول.

وهناك نقطة أخرى مهمة: Guacamole لا يجعل الجهاز البعيد قابلًا للوصول من تلقاء نفسه. إذا أردت الاتصال بجهاز Windows عبر RDP، يجب أن يكون RDP متاحًا على الجهاز المستهدف، وإذا أردت استخدام SSH فيجب أن يكون خادم SSH متاحًا.

كذلك يجب التعامل بحذر مع فتح Guacamole على الإنترنت، لأنه يوفر وصولًا إلى أجهزة وخوادم حقيقية. لذلك فإن HTTPS وكلمات المرور القوية وحماية تسجيل الدخول والصلاحيات المناسبة ليست أمورًا ثانوية.

ما الذي تحتاج إليه قبل تثبيت Guacamole؟

قبل تنفيذ أي أمر، يجب أن تكون الصورة واضحة.

ستحتاج إلى خادم لتثبيت Guacamole عليه، ويمكن أن يكون خادم Linux أو بيئة أخرى قادرة على تشغيل Docker.

وستحتاج أيضًا إلى الجهاز الذي تريد الوصول إليه.

وهذان شيئان مختلفان:

الخادم الأول: يعمل عليه Apache Guacamole وguacd وقاعدة البيانات.

الجهاز الثاني: هو الجهاز الذي تريد التحكم فيه أو الدخول إليه، مثل Windows أو Linux.

على سبيل المثال:

VPS / Server
├── Apache Guacamole
├── guacd
└── MariaDB
             │ الشبكة
             ▼
الجهاز المستهدف
└── Windows + RDP

ويجب أن يستطيع خادم Guacamole الوصول إلى الجهاز المستهدف عبر الشبكة والمنفذ المطلوب.

متطلبات تشغيل Apache Guacamole

في هذا الدليل سنستخدم Docker، ولذلك تحتاج إلى:

  • خادم Linux مناسب لتشغيل Docker.
  • Docker Engine.
  • Docker Compose.
  • اتصال شبكي بين خادم Guacamole والأجهزة المستهدفة.
  • قاعدة بيانات MySQL أو MariaDB أو PostgreSQL.
  • جهاز مستهدف مجهز بالبروتوكول الذي تريد استخدامه.
  • حساب مستخدم صالح على الجهاز المستهدف.
  • كلمة مرور قوية لخادم Guacamole.

ولا تحتاج إلى تثبيت Guacamole على كل جهاز تريد التحكم فيه.

لماذا نستخدم Docker في هذا الشرح؟

يمكن تثبيت Guacamole بالطريقة الأصلية، لكن ذلك يتطلب التعامل مع مكونات وإعدادات أكثر.

أما Docker فيسمح بتشغيل المكونات داخل حاويات منفصلة، ويقدم مشروع Guacamole صورًا رسمية لكل من guacamole وguacd.

ولهذا سنستخدم في هذا الشرح ثلاثة مكونات رئيسية:

guacamole/guacamole
guacamole/guacd
mysql

ويمكن استبدال MySQL بـ MariaDB أو PostgreSQL وفق احتياجاتك، لكن استخدام MySQL هنا يجعل الخطوات واضحة ومباشرة.

تثبيت Apache Guacamole باستخدام Docker

ملاحظة: الشرح التالي مخصص للتثبيت على خادم Linux مع Docker وDocker Compose. الأوامر تفترض أنك تستخدم مستخدمًا لديه صلاحية تشغيل Docker.

الخطوة الأولى: إنشاء مجلد Guacamole

أنشئ مجلدًا خاصًا بالمشروع:

mkdir -p ~/guacamole
cd ~/guacamole

سنضع داخل هذا المجلد ملف Docker Compose وملفات التهيئة اللازمة.

الخطوة الثانية: إنشاء ملف Docker Compose

أنشئ ملفًا باسم: docker-compose.yml

ثم ضع الكود التالي داخله:

services:
  guacd:
    image: guacamole/guacd:1.6.0
    container_name: guacd
    restart: unless-stopped
  mysql:
    image: mysql:8.4
    container_name: guacamole-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: CHANGE_THIS_ROOT_PASSWORD
      MYSQL_DATABASE: guacamole_db
      MYSQL_USER: guacamole_user
      MYSQL_PASSWORD: CHANGE_THIS_DB_PASSWORD
    volumes:
      - mysql_data:/var/lib/mysql
      - initdb:/docker-entrypoint-initdb.d:ro
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -p$${MYSQL_ROOT_PASSWORD} --silent"]
      interval: 10s
      timeout: 5s
      retries: 10
  guacamole:
    image: guacamole/guacamole:1.6.0
    container_name: guacamole
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy
      guacd:
        condition: service_started
    environment:
      GUACD_HOSTNAME: guacd
      MYSQL_HOSTNAME: mysql
      MYSQL_DATABASE: guacamole_db
      MYSQL_USERNAME: guacamole_user
      MYSQL_PASSWORD: CHANGE_THIS_DB_PASSWORD
    ports:
      - "8080:8080"
    volumes:
      - initdb:/opt/guacamole/extensions/guacamole-auth-jdbc/mysql/schema:ro
volumes:
  mysql_data:
  initdb:

قبل تشغيل الملف

غيّر: 

CHANGE_THIS_ROOT_PASSWORD

إلى كلمة مرور قوية لحساب root في قاعدة البيانات.

وغيّر:

CHANGE_THIS_DB_PASSWORD

إلى كلمة مرور قوية للمستخدم:

guacamole_user

يجب أن تكون كلمة المرور نفسها في مكانَي MYSQL_PASSWORD الموجودين في الملف.

ولا تستخدم كلمات المرور الموجودة في المثال كما هي.

ماذا يفعل ملف Docker Compose؟

من المهم أن تفهم ما الذي سيحدث بدل نسخ الأوامر دون معرفة وظيفتها.

حاوية guacd

guacd:

هي المسؤولة عن إنشاء الاتصالات بالبروتوكولات المدعومة.

حاوية MySQL

mysql:

تحتوي على قاعدة البيانات التي سيستخدمها Guacamole للمصادقة وتخزين إعدادات الاتصالات.

حاوية Guacamole

guacamole:

هي واجهة الويب التي ستفتحها في المتصفح.

المنفذ 8080

- "8080:8080"

يسمح بالوصول إلى واجهة Guacamole عبر المنفذ 8080 أثناء مرحلة الاختبار.

الشبكة الداخلية

لا نحتاج إلى نشر منفذ guacd على الإنترنت؛ يكفي أن تستطيع حاوية Guacamole الوصول إليه داخل شبكة Docker.

وهذه نقطة مهمة من ناحية الأمان.

الخطوة الثالثة: تهيئة قاعدة بيانات Guacamole

هذه من أهم خطوات التثبيت.

قاعدة البيانات التي أنشأها MySQL ليست كافية وحدها؛ يجب إنشاء جداول Guacamole الخاصة بها.

توفر صورة Guacamole الرسمية سكربتًا يسمى:

initdb.sh

ويمكن استخدامه لإنشاء ملف SQL الخاص بمخطط MySQL:

docker run --rm guacamole/guacamole:1.6.0 \

/opt/guacamole/bin/initdb.sh --mysql > initdb.sql

سيؤدي ذلك إلى إنشاء:

initdb.sql

داخل مجلد المشروع.

لكن عند استخدام Docker Compose يمكن الاعتماد على آلية تهيئة قاعدة البيانات الموجودة في المثال السابق، حيث تتم مشاركة ملفات المخطط بين حاوية Guacamole وحاوية MySQL من خلال مجلد Docker volume.

مهم: تهيئة MySQL بهذه الطريقة تتم عند إنشاء قاعدة البيانات لأول مرة. إذا كانت قاعدة البيانات موجودة مسبقًا داخل volume، فلن يعيد MySQL تشغيل ملفات التهيئة تلقائيًا.

الخطوة الرابعة: تشغيل Guacamole

بعد حفظ ملف Docker Compose، شغّل:

docker compose up -d

ثم تحقق من الحاويات:

docker compose ps

يجب أن ترى الحاويات الثلاث:

guacd

guacamole-mysql

guacamole

إذا أردت مشاهدة السجل لمعرفة ما إذا كانت هناك مشكلة:

docker compose logs

ولمشاهدة سجل Guacamole فقط:

docker compose logs guacamole

ولمشاهدة سجل قاعدة البيانات:

docker compose logs mysql

هذه الأوامر مهمة جدًا عند حدوث مشكلة، لأنها غالبًا توضح السبب الحقيقي بدل الاعتماد على التخمين.

الخطوة الخامسة: فتح Guacamole في المتصفح

بعد نجاح تشغيل الحاويات، افتح:

http://IP-ADDRESS:8080/guacamole/

استبدل:

IP-ADDRESS

بعنوان IP الخاص بالخادم.

مثال:

http://192.168.1.100:8080/guacamole/

إذا ظهرت شاشة تسجيل الدخول، فهذا يعني أن واجهة Guacamole أصبحت تعمل.

تسجيل الدخول لأول مرة

عند استخدام مخطط قاعدة البيانات الرسمي، يتم إنشاء حساب إداري افتراضي:

اسم المستخدم:

guacadmin

كلمة المرور:

guacadmin

استخدم هذه البيانات لأول تسجيل دخول فقط.

بعد الدخول مباشرة، غيّر كلمة المرور إلى كلمة مرور قوية.

ولا تستخدم بيانات الدخول الافتراضية على خادم متاح للعامة.

تغيير كلمة مرور الحساب الإداري

بعد تسجيل الدخول، افتح إدارة المستخدمين، ثم اختر:

guacadmin

وغيّر كلمة المرور.

يفضل أن تحتوي كلمة المرور الجديدة على مزيج من:

  • الأحرف الكبيرة والصغيرة.
  • الأرقام.
  • الرموز.
  • طول مناسب.

ولا تستخدم كلمة مرور تستخدمها في مواقع أخرى.

إنشاء أول اتصال بجهاز Windows

بعد تشغيل Guacamole بنجاح، نصل إلى الجزء الذي يهم معظم المستخدمين: الاتصال بجهاز Windows من المتصفح.

قبل إنشاء الاتصال، تأكد من أن الجهاز المستهدف يسمح باتصالات RDP وأن خادم Guacamole يستطيع الوصول إليه عبر الشبكة.

بعد ذلك ادخل إلى واجهة الإدارة، ثم إلى قسم الاتصالات، واختر إنشاء اتصال جديد.

ستجد مجموعة من الخيارات.

اسم الاتصال

اختر اسمًا واضحًا.

مثلاً:

Windows الرئيسي

أو:

Windows Server

الأفضل أن يكون الاسم مفهومًا إذا أصبح لديك عدة أجهزة.

اختيار البروتوكول

اختر:

RDP

لأننا سنستخدم Remote Desktop Protocol للاتصال بجهاز Windows.

عنوان الجهاز

في خانة: Hostname

اكتب عنوان IP أو اسم الجهاز المستهدف. مثلاً: 192.168.1.50

إذا كان الخادم يستخدم اسم مضيف يمكن استخدامه بدل عنوان IP، بشرط أن يستطيع خادم Guacamole حله والوصول إليه.

منفذ RDP

المنفذ الافتراضي لـ RDP هو: 3389

إذا لم تغير إعداد RDP على الجهاز، استخدم: 3389

أما إذا كان RDP يعمل على منفذ مختلف، فاستخدم المنفذ الذي تم تكوينه فعليًا.

اسم المستخدم

أدخل اسم حساب Windows الذي سيستخدم لتسجيل الدخول.

إذا كان الحساب محليًا، فقد تحتاج إلى استخدام الصيغة المناسبة لحساب الجهاز.

وفي بيئات Active Directory يمكن أن تحتاج إلى تحديد النطاق في الحقل المخصص لذلك.

كلمة المرور

أدخل كلمة مرور حساب Windows.

ويجب أن يكون الحساب مسموحًا له باستخدام Remote Desktop.

ماذا لو لم يعمل RDP على Windows؟

هذه من أكثر النقاط التي تسبب ارتباكًا للمبتدئين.

إذا ظهر Guacamole بشكل طبيعي ولكن فشل الاتصال بجهاز Windows، فهذا لا يعني بالضرورة أن المشكلة في Guacamole.

تحقق من الجهاز المستهدف أولًا:

  1. هل Remote Desktop مفعّل؟
  2. هل المستخدم مسموح له بالدخول عن بُعد؟
  3. هل عنوان IP صحيح؟
  4. هل المنفذ 3389 مفتوح؟
  5. هل جدار الحماية يسمح باتصالات RDP؟
  6. هل خادم Guacamole يستطيع الوصول إلى الجهاز؟
  7. هل اسم المستخدم وكلمة المرور صحيحان؟

وهنا تظهر أهمية فهم الفرق بين خادم Guacamole والجهاز الذي تريد التحكم فيه.

إعدادات RDP المهمة

من إعدادات اتصال RDP توجد خيارات أخرى يمكن تعديلها حسب احتياجاتك.

من أهمها إعداد الأمان:

Security

ويمكن لـ Guacamole التفاوض على وضع الأمان المناسب، كما يمكن استخدام NLA عند الحاجة.

إذا كان خادم Windows مضبوطًا على استخدام Network Level Authentication، فيجب أن تكون إعدادات الاتصال متوافقة مع طريقة المصادقة المطلوبة.

في أغلب الحالات لا تحتاج إلى تغيير هذه الإعدادات منذ البداية. الأفضل أن تبدأ بالإعدادات الافتراضية، ثم تعدلها فقط إذا كان لديك سبب واضح.

إنشاء اتصال Linux باستخدام SSH

Guacamole لا يقتصر على سطح المكتب.

إذا كنت تريد إدارة خادم Linux من خلال Terminal داخل المتصفح، أنشئ اتصالًا جديدًا واختر:

SSH

ثم أدخل:

Hostname: عنوان خادم Linux

Port: 22

Username: اسم المستخدم

المنفذ القياسي لـ SSH هو:

22

ما لم تكن قد غيرته على الخادم.

بعد حفظ الاتصال، سيظهر في الصفحة الرئيسية.

عند الضغط عليه، ستفتح جلسة SSH داخل المتصفح.

وهذه طريقة مفيدة خصوصًا إذا كنت تريد إدارة خادم Linux من جهاز لا يحتوي على برنامج SSH مخصص.

الاتصال بجهاز باستخدام VNC

إذا كان الجهاز المستهدف يعمل بخادم VNC، يمكنك إنشاء اتصال جديد واختيار:

VNC

ثم إدخال:

Hostname

Port

وبيانات المصادقة المطلوبة.

لكن يجب الانتباه إلى أن Guacamole لا ينشئ خادم VNC على الجهاز المستهدف.

يجب أن يكون VNC Server مثبتًا ومشغلًا على الجهاز الذي تريد الوصول إليه.

كيف تستخدم Guacamole بعد إنشاء الاتصال؟

بعد إنشاء الاتصال وحفظه، سيظهر في واجهة Guacamole.

اضغط على اسم الجهاز.

سيحاول Guacamole إنشاء الجلسة باستخدام المعلومات التي أدخلتها.

إذا نجح الاتصال، ستظهر جلسة الجهاز داخل المتصفح.

في جلسة RDP مثلًا يمكنك استخدام:

  • لوحة المفاتيح.
  • الماوس.
  • الحافظة Clipboard وفق الإعدادات.
  • وظائف الجلسة المتاحة.
  • نقل الملفات عندما يكون مدعومًا ومفعلًا.

وبذلك تصبح جلسة Windows نفسها داخل نافذة المتصفح.

هل يمكن استخدام Guacamole من الهاتف؟

نعم.

بما أن Guacamole يعمل من خلال واجهة ويب، يمكنك فتح عنوانه من متصفح الهاتف وتسجيل الدخول.

لكن تجربة سطح المكتب على شاشة صغيرة تختلف عن الكمبيوتر، خصوصًا عند التعامل مع النوافذ والقوائم ولوحة المفاتيح.

لذلك يكون الهاتف مفيدًا للوصول السريع أو الإدارة عند الحاجة، بينما تكون الشاشة الأكبر أكثر راحة للجلسات الطويلة.

نقل الملفات عبر Guacamole

من الوظائف المفيدة في Guacamole إمكانية نقل الملفات، لكن يجب عدم افتراض أن هذه الوظيفة متاحة بالطريقة نفسها في كل اتصال.

يعتمد الأمر على البروتوكول والإعدادات.

في الحالات التي يدعم فيها الاتصال نقل الملفات، يمكن استخدام الوظيفة من داخل جلسة Guacamole بدل الاعتماد على خدمة منفصلة.

إذا لم يظهر خيار نقل الملفات، فراجع إعداد الاتصال والبروتوكول المستخدم بدل افتراض وجود خلل في البرنامج.

أهم إعدادات Guacamole التي يجب فهمها

GUACD_HOSTNAME

يحدد اسم المضيف الذي توجد عليه خدمة guacd.

في Docker Compose الذي استخدمناه:

guacd

لأن هذا هو اسم خدمة Docker.

GUACD_PORT

المنفذ الافتراضي لـ guacd هو: 4822

ولا تحتاج عادةً إلى فتحه للمستخدمين على الإنترنت إذا كانت حاويات Docker تتواصل داخليًا.

MYSQL_HOSTNAME

يحدد اسم مضيف قاعدة البيانات.

في المثال السابق:

mysql

MYSQL_DATABASE

اسم قاعدة البيانات:

guacamole_db

MYSQL_USERNAME

اسم مستخدم قاعدة البيانات:

guacamole_user

MYSQL_PASSWORD

كلمة مرور مستخدم قاعدة البيانات.

ويجب أن تطابق كلمة المرور التي وضعتها في حاوية MySQL.

ماذا تفعل إذا عدلت إعدادات Docker؟

هذه نقطة مهمة.

إذا عدلت متغيرات البيئة في:

docker-compose.yml

فلا يكفي أن تعدل الملف وتنتظر أن تتغير الحاوية الحالية.

استخدم:

docker compose up -d

وسيكتشف Docker Compose أن إعدادات الحاوية تغيرت ويعيد إنشاء الحاوية عند الحاجة.

بعد ذلك تحقق من السجل:

docker compose logs guacamole

حماية Apache Guacamole عند استخدامه عبر الإنترنت

إذا كنت ستستخدم Guacamole داخل شبكة منزلية أو شبكة داخلية فقط، يكون الأمر أبسط.

لكن إذا كنت ستصل إليه من الإنترنت، فلا أنصح بتركه بهذه الصورة:

http://your-ip:8080/guacamole/

كواجهة عامة للإنتاج.

الأفضل وضع Guacamole خلف Reverse Proxy واستخدام HTTPS.

البنية المناسبة تكون:

المتصفح
   │ HTTPS
   ▼
Reverse Proxy
   │ HTTP داخلي
   ▼
Guacamole :8080
   │
   ▼
guacd

وبذلك يتولى Reverse Proxy التعامل مع اتصال HTTPS الخارجي، بينما تبقى خدمة Guacamole خلفه.

لماذا HTTPS مهم؟

واجهة Guacamole تتعامل مع جلسات وصول إلى أجهزة حقيقية، وقد تتضمن بيانات تسجيل دخول ومعلومات حساسة.

لذلك فإن تشفير الاتصال بين المتصفح والخادم أمر أساسي عند استخدامه عبر الإنترنت.

يمكن استخدام Nginx أو Apache HTTP Server كـ Reverse Proxy، مع شهادة TLS صالحة.

وعند إعداد Reverse Proxy، يجب الانتباه أيضًا إلى دعم WebSocket وإعدادات تمرير الاتصال، لأن Guacamole يعتمد على اتصال مستمر لنقل بيانات الجلسة بصورة مناسبة.

لا تفتح منفذ guacd للعامة

من الأخطاء التي يجب تجنبها فتح منفذ: 4822

للإنترنت دون حاجة.

guacd خدمة داخلية في بنية Guacamole، ومن الأفضل أن تتواصل معها واجهة Guacamole عبر شبكة الخادم الداخلية.

المستخدم النهائي يجب أن يصل إلى واجهة Guacamole، وليس إلى guacd مباشرة.

حماية حسابات Guacamole

لا تعتمد على اسم المستخدم وكلمة المرور الافتراضيين.

بعد أول تسجيل دخول:

غيّر كلمة مرور guacadmin فورًا.

وإذا كان هناك أكثر من مستخدم، أنشئ حسابًا منفصلًا لكل شخص بدل مشاركة حساب واحد.

كما يفضل إعطاء كل مستخدم أقل قدر من الصلاحيات التي يحتاج إليها.

فإذا كان المستخدم يحتاج إلى جهاز واحد، فلا داعي لمنحه إمكانية الوصول إلى جميع الأجهزة.

حماية Guacamole من محاولات التخمين

الوصول إلى واجهة تسجيل الدخول من الإنترنت يعني أن الخادم قد يتعرض لمحاولات تسجيل دخول متكررة.

يدعم Guacamole آلية للحماية من محاولات المصادقة الفاشلة المتكررة، كما يمكن استخدام أدوات مثل Fail2ban كطبقة إضافية على مستوى الخادم.

لكن لا ينبغي اعتبار أي آلية حماية واحدة كافية بمفردها.

الأفضل الجمع بين:

HTTPS + كلمات مرور قوية + صلاحيات محدودة + تحديثات مستمرة + حماية من محاولات التخمين + جدار حماية مناسب.

أشهر مشاكل Guacamole وحلولها

تظهر صفحة لا تعمل أو لا تظهر شاشة تسجيل الدخول

ابدأ بفحص الحاويات:

docker compose ps

ثم راجع السجل:

docker compose logs guacamole

إذا كانت الحاوية متوقفة، سيظهر السبب غالبًا في السجل.

Guacamole يعمل لكن لا يمكن الاتصال بالجهاز

تحقق من:

  • عنوان IP.
  • المنفذ.
  • البروتوكول.
  • اسم المستخدم.
  • كلمة المرور.
  • جدار الحماية.
  • إعداد الجهاز المستهدف.
  • إمكانية وصول خادم Guacamole إلى الجهاز.

ولا تفترض أن المشكلة في Guacamole قبل اختبار الاتصال من الخادم نفسه.

خطأ في قاعدة البيانات

إذا ظهر خطأ متعلق بـ MySQL، تحقق من:

MYSQL_HOSTNAME

MYSQL_DATABASE

MYSQL_USERNAME

MYSQL_PASSWORD

ثم تأكد من أن قاعدة البيانات تعمل:

docker compose ps

وراجع:

docker compose logs mysql

غيرت كلمة مرور قاعدة البيانات ولم يعمل Guacamole

تأكد من أن كلمة المرور الموجودة في:

MYSQL_PASSWORD

داخل حاوية Guacamole تطابق كلمة المرور الخاصة بالمستخدم داخل MySQL.

وهذه نقطة مختلفة عن كلمة مرور تسجيل الدخول إلى واجهة Guacamole.

هناك ثلاث كلمات مرور قد يخلط بينها المبتدئ:

كلمة مرور root لقاعدة البيانات

و

كلمة مرور مستخدم قاعدة بيانات Guacamole

و

كلمة مرور مستخدم Guacamole مثل guacadmin

كل واحدة منها تؤدي وظيفة مختلفة.

عدلت Docker Compose ولم تتغير الإعدادات

أعد إنشاء الحاوية:

docker compose up -d

ثم تحقق من السجل.

ولا تحذف مجلد قاعدة البيانات أو volume بشكل عشوائي، لأن ذلك قد يؤدي إلى فقدان بيانات Guacamole.

الاتصال بـ Windows يرفض تسجيل الدخول

إذا كانت واجهة Guacamole تعمل لكن Windows يرفض الاتصال، تحقق من إعداد Remote Desktop على Windows، ومن صلاحية الحساب، ومن إعدادات NLA، ومن إمكانية الوصول إلى منفذ RDP من خادم Guacamole.

هل Guacamole مناسب للمبتدئين؟

يمكن أن يكون مناسبًا جدًا للمبتدئ بعد اكتمال الإعداد.

أما عملية التثبيت نفسها فتحتاج إلى معرفة أساسية بـ Docker والشبكات والخوادم.

وهذا ليس عيبًا في Guacamole بقدر ما هو نتيجة لطبيعة البرنامج؛ فهو ليس تطبيقًا صغيرًا للتحكم بجهاز واحد، وإنما منصة يمكن استخدامها لإدارة عدة اتصالات وأنظمة.

لذلك إذا كنت تحتاج فقط إلى التحكم في جهاز واحد من جهاز آخر، فقد تكون أداة أبسط أكثر ملاءمة.

أما إذا كنت تريد بوابة ويب مركزية للوصول إلى عدة أجهزة وخوادم باستخدام بروتوكولات مختلفة، فهنا تصبح فكرة Guacamole أكثر منطقية.

قد يهمك أيضاً

تبحث عن الطريقة المثالية لتوثيق شاشتك بدقة عالية ودون تعقيد؟ سواء كنت صانع محتوى، أو معلماً، أو تبحث عن الأداة المناسبة لعملك، فقد جمعنا لك كل ما تحتاجه في مكان واحد. اكتشف الآن [دليلك الشامل: أفضل 12 برنامجًا لتسجيل شاشة الكمبيوتر (مجاني ومدفوع)] لتتعرف على الميزات، والعيوب، وتختار الأداة التي تناسب ميزانيتك واحتياجاتك بدقة واحترافية.

نصائح مهمة لاستخدام Apache Guacamole

ابدأ داخل الشبكة المحلية قبل فتح الخدمة على الإنترنت. بهذه الطريقة يمكنك التأكد من أن Guacamole وguacd وقاعدة البيانات والاتصال بالجهاز المستهدف تعمل بشكل صحيح قبل إضافة HTTPS وReverse Proxy.

لا تستخدم الحساب الإداري لكل شيء. أنشئ حسابات منفصلة للمستخدمين، وحدد لكل حساب الاتصالات التي يحتاج إليها فقط.

احتفظ بنسخة احتياطية من قاعدة البيانات. إعدادات المستخدمين والاتصالات مهمة، وفقدان قاعدة البيانات قد يعني فقدان إعدادات الوصول التي أنشأتها.

لا تحذف Docker volumes لمجرد حل مشكلة. حذف volume قاعدة البيانات قد يؤدي إلى فقدان البيانات.

لا تفتح المنافذ الداخلية بلا سبب. واجهة Guacamole هي التي يحتاج إليها المستخدم، أما guacd وقاعدة البيانات فينبغي أن تبقى ضمن البنية الداخلية قدر الإمكان.

استخدم HTTPS عند الوصول عبر الإنترنت. لا تجعل جلسات الإدارة الحساسة تعتمد على اتصال HTTP غير مشفر.

حدّث Guacamole والمكونات المحيطة به باستمرار. لكن قبل تحديث خادم يستخدم في العمل، احتفظ بنسخة احتياطية واختبر التحديث بطريقة مناسبة.

اختبر الاتصال من خادم Guacamole نفسه. إذا لم يستطع الخادم الوصول إلى جهاز Windows أو Linux، فلن يستطيع Guacamole إصلاح مشكلة الشبكة تلقائيًا.

هل يحتاج Guacamole إلى برنامج على الجهاز المستهدف؟

ليس Guacamole نفسه.

لكن الجهاز المستهدف يحتاج إلى خدمة أو بروتوكول وصول مناسب.

فمثلًا:

الجهاز المستهدف طريقة الاتصال

Windows RDP

Linux SSH

جهاز يعمل بخادم VNC VNC

بيئة أخرى حسب البروتوكول المدعوم

لذلك لا يكفي أن تثبت Guacamole فقط؛ يجب أيضًا إعداد الجهاز الذي تريد الوصول إليه.

هل يمكن استخدام Guacamole بدون قاعدة بيانات؟

Guacamole لديه أكثر من طريقة للمصادقة، وهناك مصادقة بسيطة تعتمد على ملف user-mapping.xml.

لكن إذا كنت تريد إدارة المستخدمين والاتصالات من خلال واجهة الإدارة بصورة عملية، فإن استخدام قاعدة بيانات مثل MySQL أو MariaDB أو PostgreSQL يكون أكثر ملاءمة.

ولهذا استخدمنا قاعدة البيانات في هذا الدليل بدل الاكتفاء بالإعداد البسيط المعتمد على الملف.

هل Apache Guacamole مجاني؟

نعم، Apache Guacamole مشروع مفتوح المصدر.

لكن هذا لا يعني أن تشغيله عبر الإنترنت لا يكلف شيئًا؛ فقد تحتاج إلى خادم أو VPS ونطاق وشهادة أو خدمات أخرى بحسب طريقة النشر.

فالبرنامج نفسه مفتوح المصدر، بينما البنية التحتية التي تشغله عليها قد تكون لها تكلفة.

هل Guacamole أفضل من برامج التحكم عن بُعد التقليدية؟

لا توجد إجابة واحدة تصلح للجميع.

إذا كنت تحتاج إلى الوصول السريع إلى جهاز واحد، فقد يكون برنامج تحكم عن بُعد مخصص أبسط.

أما إذا كان هدفك إنشاء بوابة مركزية تعمل من المتصفح وتجمع الوصول إلى أجهزة متعددة باستخدام RDP وSSH وVNC، فإن Guacamole يقدم فكرة مختلفة ومفيدة.

لذلك لا يصح اختزاله في عبارة مثل "أفضل برنامج تحكم عن بعد"، لأن طريقة استخدامه تختلف عن كثير من التطبيقات التقليدية.

الأسئلة الشائعة حول Apache Guacamole

ما هو Apache Guacamole؟

هو منصة ويب مفتوحة المصدر تتيح الوصول إلى أجهزة وخوادم بعيدة من خلال المتصفح باستخدام بروتوكولات مثل RDP وVNC وSSH.

هل Guacamole يحتاج إلى تثبيت على Windows؟

لا. عادةً يتم تثبيته على خادم، بينما يتم الوصول إليه من المتصفح.

هل يعمل Guacamole على الهاتف؟

نعم، يمكن فتح واجهته من متصفح الهاتف، لكن راحة الاستخدام تعتمد على حجم الشاشة وطبيعة المهمة.

هل يدعم Windows؟

نعم، يمكن الاتصال بأجهزة Windows باستخدام RDP عند تفعيل Remote Desktop وإعداد الجهاز بصورة صحيحة.

هل يدعم Linux؟

نعم، ويمكن استخدام SSH للوصول إلى خوادم Linux من خلال المتصفح.

هل يحتاج إلى Docker؟

لا، Docker ليس الطريقة الوحيدة لتثبيته، لكنه يوفر طريقة عملية لنشر المكونات الرسمية وإدارتها.

هل يمكن استخدامه من الإنترنت؟

نعم، لكن يفضل نشره خلف Reverse Proxy مع HTTPS وتطبيق إجراءات حماية مناسبة.

هل Guacamole ينشئ جهازًا افتراضيًا؟

لا. هو لا ينشئ جهازًا افتراضيًا؛ بل يوفر الوصول إلى أجهزة موجودة أصلًا.

هل يمكن التحكم في عدة أجهزة؟

نعم، ويمكن إنشاء عدة اتصالات وتنظيم صلاحيات المستخدمين للوصول إليها.

الخلاصة

Apache Guacamole يقدم طريقة مختلفة للوصول إلى أجهزة الكمبيوتر والخوادم عن بُعد؛ فبدل تثبيت برنامج عميل خاص على كل جهاز تستخدمه، يوفر لك واجهة ويب تستطيع من خلالها إدارة اتصالات تعتمد على بروتوكولات مثل RDP وSSH وVNC.

قوة Guacamole تظهر بشكل خاص عندما تحتاج إلى إدارة عدة أجهزة أو خوادم من مكان واحد، أو عندما تريد الوصول إليها من أجهزة مختلفة باستخدام المتصفح. وفي المقابل، فإن الإعداد الأولي يحتاج إلى بعض المعرفة بـ Docker والشبكات وقاعدة البيانات، لذلك قد يبدو أكثر تعقيدًا من برامج التحكم عن بُعد المصممة للاستخدام الفردي.

وبعد إتمام الإعداد بصورة صحيحة، يصبح الاستخدام اليومي أبسط بكثير: تسجل الدخول، تختار الجهاز، وتبدأ الجلسة من المتصفح.

أما إذا كان Guacamole سيُستخدم عبر الإنترنت، فلا ينبغي الاكتفاء بتشغيله والوصول إليه عبر المنفذ الافتراضي؛ بل يجب الاهتمام بـ HTTPS، وكلمات المرور القوية، والصلاحيات، وحماية محاولات تسجيل الدخول، وعدم كشف الخدمات الداخلية، والنسخ الاحتياطي والتحديثات.

وبهذه الطريقة يمكن أن يتحول Apache Guacamole إلى بوابة عملية ومركزية للوصول إلى أجهزتك وخوادمك عن بُعد، مع الاحتفاظ بمرونة استخدام البروتوكولات المختلفة من خلال واجهة ويب واحدة.

عالم التقنية AZ
عالم التقنية AZ
مدونة عالم التقنية AZ تقدم شروحات تقنية مبسطة، مراجعات أجهزة، وأخبار التكنولوجيا الحديثة باللغة العربية. هدفنا هو تبسيط التقنية للمستخدم العربي وتقديم محتوى موثوق ومحدث باستمرار.
تعليقات