كيفية تثبيت VNC وتكوينه على Ubuntu 20.04
مقدمة
الحوسبة الشبكية الافتراضية (VNC) هي نظام اتصال يتيح لك استخدام لوحة المفاتيح والفأرة للتفاعل مع بيئة سطح مكتب رسومية على خادم بعيد. يسهّل هذا النظام على المستخدمين الذين لا يجيدون استخدام سطر الأوامر إدارة الملفات والبرامج والإعدادات على الخادم البعيد.
في هذا الدليل، ستُنشئ خادم VNC باستخدام TightVNC على خادم Ubuntu 20.04، وتتصل به عبر نفق SSH. بعد ذلك، ستستخدم برنامج عميل VNC على جهازك المحلي للتفاعل مع الخادم عبر بيئة سطح مكتب رسومية.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
- خادم Ubuntu 20.04 مع مستخدم إداري غير جذر وجدار حماية مُهيأ باستخدام UFW.
- جهاز كمبيوتر محلي مُثبّت عليه عميل VNC. يجب أن يدعم عميل VNC الذي تستخدمه الاتصالات عبر أنفاق SSH:
- على نظام Windows، يمكنك استخدام TightVNC، أو RealVNC، أو UltraVNC.
- على نظام macOS، يمكنك استخدام تطبيق مشاركة الشاشة المدمج، أو يمكنك استخدام تطبيق متعدد الأنظمة الأساسية مثل RealVNC.
- في Linux، يمكنك الاختيار من بين العديد من الخيارات، بما في ذلك: خل، كردكاختر RealVNC أو TightVNC.
الخطوة 1 - تثبيت بيئة سطح المكتب وخادم VNC
بشكل افتراضي، لا يأتي خادم Ubuntu 20.04 مثبتًا مع بيئة سطح مكتب رسومية أو خادم VNC، لذا عليك البدء بتثبيتها.
عند اختيار خادم VNC وبيئة سطح المكتب، لديك خيارات متعددة. في هذا البرنامج التعليمي، ستقوم بتثبيت حزم بيئة سطح المكتب Xfce الأحدث وحزمة TightVNC المتوفرة في مستودع Ubuntu الرسمي. يتميز كلٌّ من Xfce وTightVNC بخفة وزنهما وسرعتهما، مما يضمن سلاسة واستقرار اتصال VNC حتى مع اتصالات الإنترنت البطيئة.
بعد الاتصال بالخادم الخاص بك باستخدام SSH، قم بتحديث قائمة الحزم الخاصة بك:
$ sudo apt update
الآن قم بتغليف Xfce مع هدايا xfce4 التثبيت الذي يتضمن العديد من التحسينات لبيئة سطح المكتب:
$ sudo apt install xfce4 xfce4-goodies
أثناء التثبيت، قد يُطلب منك اختيار مدير عرض افتراضي لـ Xfce. مدير العرض هو برنامج يسمح لك باختيار بيئة سطح مكتب وتسجيل الدخول إليها من خلال واجهة رسومية. ستستخدم Xfce فقط عند الاتصال بعميل VNC، وفي جلسات Xfce هذه، ستكون مسجلاً دخولك كمستخدم Ubuntu غير جذر. لذا، لأغراض هذا البرنامج التعليمي، اختيار مدير العرض ليس مهمًا. اختر واحدًا و... يدخل يضعط .
بمجرد اكتمال التثبيت، قم بتثبيت خادم TightVNC:
$ sudo apt install tightvncserver
بعد ذلك الأمرخادم vnc قم بتشغيل لتعيين كلمة مرور VNC وإنشاء ملفات التكوين الأولية وبدء تشغيل مثيل خادم VNC:
$ vncserver
سيُطلب منك إدخال كلمة مرور وتأكيدها للوصول إلى جهازك عن بُعد:
الناتج
سوف تحتاج إلى كلمة مرور للوصول إلى أجهزة سطح المكتب الخاصة بك.
كلمة المرور:
يؤكد:
يجب أن يتراوح طول كلمة المرور بين ستة وثمانية أحرف. سيتم حذف كلمات المرور التي تزيد عن ثمانية أحرف تلقائيًا.
بمجرد تأكيد كلمة المرور، سيكون لديك خيار إنشاء كلمة مرور للعرض فقط. لن يتمكن المستخدمون الذين يسجلون الدخول باستخدام كلمة مرور للعرض فقط من التحكم في نسخة VNC باستخدام الماوس أو لوحة المفاتيح. يُعد هذا خيارًا مفيدًا إذا كنت ترغب في عرض محتوى لمستخدمي خادم VNC الخاص بك، ولكنه ليس إلزاميًا.
تُنشئ هذه العملية ملفات التكوين الافتراضية اللازمة ومعلومات الاتصال بالخادم. بالإضافة إلى ذلك، تُنشئ مثيل خادم افتراضيًا على المنفذ 5901 يُطلق على هذا المنفذ اسم منفذ العرض ويُستخدم بواسطة VNC كـ:1 يمكن لـ VNC تشغيل مثيلات متعددة على منافذ عرض أخرى، مع :2 الى الميناء5902، 3: يشير إلى 5903 إلخ.:
الناتج
هل ترغب في إدخال كلمة مرور للعرض فقط (نعم/لا)؟ن
xauth: ملف /home/سامي/.Xauthority غير موجود
سطح المكتب الجديد "X" هو اسم المضيف الخاص بك:1
إنشاء البرنامج النصي لبدء التشغيل الافتراضي /home/سامي/.vnc/xstartup
بدء تشغيل التطبيقات المحددة في /home/سامي/.vnc/xstartup
ملف السجل هو /home/سامي/.vnc/اسم المضيف الخاص بك:1.سجل
لاحظ أنه إذا كنت تريد تغيير كلمة المرور الخاصة بك أو إضافة كلمة مرور للعرض فقط، فيمكنك القيام بذلك باستخدام الأمر vncpasswd يفعل:
$ vncpasswd
في هذه المرحلة، تم تثبيت خادم VNC وتشغيله. لنبدأ الآن بتكوينه لتشغيل Xfce ومنحنا إمكانية الوصول إلى الخادم عبر واجهة رسومية.
##الخطوة 2 - تكوين خادم VNC
يحتاج خادم VNC إلى معرفة الأوامر التي يجب تشغيلها عند بدء التشغيل. وبشكل أكثر تحديدًا، يحتاج VNC إلى معرفة بيئة سطح المكتب الرسومية التي يجب الاتصال بها.
الأوامر التي يقوم خادم VNC بتشغيلها عند بدء تشغيله موجودة في ملف تكوين يسمى إكس ستارت أب في المجلد
.vnc هذا هو دليلك الرئيسي. تم إنشاء البرنامج النصي لبدء التشغيل عند تنفيذ الأمر في الخطوة السابقة. خادم vnc لقد قمت بتشغيله، ولكنك ستقوم بإنشاء البرنامج النصي الخاص بك لتشغيل سطح مكتب Xfce.
نظرًا لأنك ستغير كيفية تكوين خادم VNC، قم أولاً بإزالة مثيل خادم VNC الذي يعمل على المنفذ 5901 إنه يعمل. أوقفه بالأمر التالي:
$ vncserver -kill :1
سيبدو الناتج على هذا النحو، على الرغم من أنك ستشاهد معرف PID مختلفًا:
الناتج
قتل معرف عملية Xtightvnc 17648
قبل الملف إكس ستارت أب تغيير، النسخ الاحتياطي الأصلي:
$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
الآن ملف إكس ستارت أب قم بإنشاء واحد جديد وافتحه في محرر نصوص مثل نانو يفتح:
$ نانو ~/.vnc/xstartup
ثم أضف الأسطر التالية إلى الملف:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
السطر الأول عبارة عن جملة. في ملفات النصوص العادية القابلة للتنفيذ على منصات *nix، كوخ يُحدد هذا الأمر النظامَ المُفسِّرَ الذي سيُرسِل إليه الملف للتنفيذ. في هذه الحالة، تُرسِل الملف إلى مُفسِّر Bash. يسمح هذا بتنفيذ كل سطر لاحق كأمر بالترتيب.
الأمر الأول في الملف، xrdb $HOME/.Xresourcesيقوم إطار عمل VNC GUI باستدعاء الملف .الموارد X المستخدم يقرأ الخادم. .الموارد X هنا يُمكن للمستخدم إجراء تغييرات على إعدادات مُعينة لسطح المكتب الرسومي، مثل ألوان الطرفية، وسمات المؤشر، وعرض الخطوط. يُوجّه الأمر الثاني الخادم لبدء تشغيل Xfce. تُنفَّذ هذه الأوامر تلقائيًا عند بدء تشغيل خادم VNC أو إعادة تشغيله.
بعد إضافة هذه الأسطر، احفظ الملف وأغلقه. إذا كنت نانو تستخدمه، قم بذلك بالضغط على CTRL + X، Y وثم يدخل افعلها.
للتأكد من أن خادم VNC يمكنه استخدام ملف الإعداد الجديد هذا بشكل صحيح، يجب عليك جعله قابلاً للتنفيذ:
$ chmod +x ~/.vnc/xstartup
ثم أعد تشغيل خادم VNC:
$ vncserver -localhost
لاحظ أن الأمر هذه المرة يتضمن الخيار -المضيف المحلي يؤدي هذا إلى ربط خادم VNC بواجهة Loopback على خادمك. سيؤدي هذا إلى سماح VNC بالاتصالات من الخادم المُثبّت عليه فقط.
بعد ذلك، تُنشئ نفق SSH بين جهازك المحلي وخادمك، مما يُخدع VNC ليعتقد أن الاتصال من جهازك المحلي صادر من خادمك. تُضيف هذه الاستراتيجية طبقة أمان إضافية لـ VNC، حيث إن المستخدمين الوحيدين الذين يمكنهم الوصول إليه هم من لديهم بالفعل وصول SSH إلى خادمك.
سوف ترى إخراجًا مشابهًا لهذا:
الناتج
سطح المكتب الجديد "X" هو اسم المضيف الخاص بك:1
بدء تشغيل التطبيقات المحددة في /home/سامي/.vnc/xstartup
ملف السجل هو /home/سامي/.vnc/اسم المضيف الخاص بك:1.سجل
بمجرد إعداد التكوين، ستكون جاهزًا للاتصال بخادم VNC من جهازك المحلي.
الخطوة 3 - الاتصال بشكل آمن بسطح مكتب VNC
لا يستخدم VNC بروتوكولات آمنة عند الاتصال. للاتصال الآمن بخادمك، أنشئ نفق SSH، ثم اطلب من عميل VNC الاتصال باستخدامه بدلاً من التواصل المباشر.
إنشاء اتصال SSH على جهاز الكمبيوتر المحلي الخاص بك والذي يتصل بشكل آمن بـ اتصال محلي مضيف نقل VNC. يمكنك القيام بذلك عبر الطرفية على نظامي Linux أو macOS باستخدام الأمرssh قم بما يلي:
$ ssh -L 59000 :localhost: 5901 -ج -ن -ل سامي عنوان IP الخاص بخادمك
وهنا معنى خيارات هذا الأمر ssh وقد جاء فيه:
- -L 59000:localhost:5901: يُحوّل -ل يحدد أن المنفذ المحدد موجود على الكمبيوتر المحلي (59,000(يجب إرسالها إلى المضيف والمنفذ المحددين على الخادم الوجهة)المضيف المحلي: 5901، بمعنى الميناء 5901 على الخادم الوجهة، كما عنوان IP الخاص بخادمك (لاحظ أن المنفذ المحلي الذي تحدده عشوائي إلى حد ما. طالما أن المنفذ غير متصل بالفعل بخدمة أخرى، فيمكنك استخدامه كمنفذ إعادة توجيه لنفقك.).
- -ج:يعمل هذا العلم على تمكين الضغط، مما قد يساعد في تقليل استهلاك الموارد وتسريع المهام.
- -ن:هذا الخيار هوssh يُشير إلى أنك لا تريد تشغيل أي أوامر عن بُعد. هذا الإعداد مفيد عند رغبتك في إعادة توجيه المنافذ فقط.
- l sammy your_server_ip-: يُحوّل -ل يسمح لك بتحديد المستخدم الذي ترغب بتسجيل الدخول به عند الاتصال بالخادم. تأكد من سامي و عنوان IP الخاص بخادمك استبدله باسم المستخدم غير الجذر وعنوان IP الخاص بخادمك.
ملحوظة: يقوم هذا الأمر بإنشاء نفق SSH يرسل البيانات من المنفذ 5901 على خادم VNC الخاص بك، انتقل إلى المنفذ 59,000 على جهازك المحلي عبر المنفذ 22 على كل جهاز، يتم إعادة توجيه منفذ SSH الافتراضي. بافتراض اتباعك لدليل إعداد الخادم الأساسي لنظام Ubuntu 20.04، فقد أضفت قاعدة UFW للسماح بالاتصال بخادمك عبر OpenSSH.
وهذا أكثر أمانًا من فتح جدار الحماية الخاص بخادمك للاتصال بالمنفذ. 5901 لأنه يسمح لأي شخص بالوصول إلى خادمك عبر VNC. بالاتصال عبر نفق SSH، فإنك تقتصر على الأجهزة التي لديها بالفعل وصول SSH إلى الخادم.
إذا كنت تستخدم PuTTY للاتصال بخادمك، فيمكنك إنشاء نفق SSH بالنقر بزر الماوس الأيمن على الشريط العلوي لنافذة المحطة الطرفية ثم النقر فوق الخيار …تغيير الإعدادات انقر:

فرع اتصال ابحث عن الفرع في قائمة الشجرة على الجانب الأيسر من نافذة إعادة تكوين PuTTY. SSH افتح واضغط الأنفاق انقر. في خيارات وحدة التحكم في صفحة إعادة توجيه المنفذ59000 strong> SSH، كمنفذ المصدر و المضيف المحلي: 5901 أدخل الوجهة كما يلي:

ثم اضغط على الزر. يضيف انقر ثم على الزر يتقدم انقر هنا لتنفيذ النفق.
بعد تشغيل النفق، استخدم عميل VNC للاتصال بـ المضيف المحلي: 59000 سيتم مطالبتك بالمصادقة باستخدام كلمة المرور التي قمت بتعيينها في الخطوة 1.
بعد الاتصال، سترى سطح مكتب Xfce الافتراضي. سيبدو كالتالي:

كما ترى هنا، يمكنك الوصول إلى الملفات الموجودة في الدليل الرئيسي لديك باستخدام مدير الملفات أو من سطر الأوامر:

CTRL+C اضغط على جهاز التحكم المحلي لديك لإيقاف نفق SSH والعودة إلى تطبيقك. سيؤدي هذا أيضًا إلى فصل جلسة VNC.
يمكنك الآن تكوين خادم VNC الخاص بك ليعمل كخدمة systemd.
الخطوة 4 - تشغيل VNC كخدمة نظام
بإعداد خادم VNC ليعمل كخدمة systemd، يمكنك تشغيله وإيقافه وإعادة تشغيله حسب الحاجة، تمامًا كأي خدمة أخرى. كما يمكنك استخدام أوامر إدارة systemd لضمان بدء تشغيل VNC عند تشغيل الخادم.
أولاً، قم بإنشاء ملف وحدة جديد يسمى /etc/systemd/system/[email protected] يخلق:
$ sudo nano /etc/systemd/system/[email protected]
رمز @ في نهاية الاسم، يُتيح لنا تمرير مُعامل يُمكنك استخدامه في تهيئة الخدمة. ستستخدمه لتحديد منفذ عرض VNC الذي تُريد استخدامه لإدارة الخدمة.
أضف الأسطر التالية إلى الملف. تأكد من تضمين القيمة المستخدم والمجموعة ودليل العمل واسم المستخدم في القيمة ملف PID تغيير لتتناسب مع اسم المستخدم الخاص بك:
[الوحدة] الوصف=بدء تشغيل خادم TightVNC عند بدء التشغيل
بعد=syslog.target network.target
[الخدمة] النوع=التشعب
المستخدم= سامي
المجموعة= سامي
دليل العمل=/الرئيسية/سامي
ملف PIDFile=/home/سامي/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -العمق 24 -الهندسة 1280×800 -localhost:%i
ExecStop=/usr/bin/vncserver -kill :%i
[تثبيت] WantedBy=multi-user.target
طلب بدء التشغيل المسبق إذا كان VNC قيد التشغيل بالفعل، فسوف يتوقف. الأمر بدء التشغيل التنفيذي يبدأ تشغيل VNC ويضبط عمق اللون إلى لون ٢٤ بت بدقة ١٢٨٠×٨٠٠. يمكنك أيضًا تغيير خيارات بدء التشغيل هذه لتلبية احتياجاتك. لاحظ أيضًا أن الأمربدء التشغيل التنفيذي مرة أخرى
يتضمن خيار -المضيف المحلي إنها.
احفظ الملف وأغلقه.
بعد ذلك، قم بإعلام النظام بملف الوحدة الجديد:
$ sudo systemctl daemon-reload
$ sudo systemctl daemon-reload
تمكين ملف الوحدة:
$ sudo systemctl enable [email protected]
1 تحت اللافتة@ يشير إلى رقم العرض الذي يجب أن تظهر عليه الخدمة، وفي هذه الحالة يكون الافتراضي :1 كما تمت مناقشته في الخطوة 2.
أوقف تشغيل المثيل الحالي لخادم VNC إذا كان لا يزال قيد التشغيل:
$ vncserver -kill :1
ثم ابدأ تشغيله مثل أي خدمة أخرى في systemd:
$ sudo systemctl start vncserver@1
يمكنك التحقق من أنه بدأ بهذا الأمر:
$ sudo systemctl status vncserver@1
إذا بدأ بشكل صحيح، فيجب أن يبدو الإخراج كما يلي:
الناتج
● [email protected] – بدء تشغيل خادم VNC Tight عند بدء التشغيل
مُحمَّل: مُحمَّل (/etc/systemd/system/[email protected]؛ مُمكَّن؛ الإعداد المسبق للبائع: مُمكَّن)
نشط: نشط (قيد التشغيل) منذ الخميس 2020-05-07 17:23:50 UTC؛ منذ 6 ثوانٍ
العملية: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (الرمز=exited، الحالة=2)
العملية: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (الرمز=exited، الحالة=0/SUCCESS)
معرف العملية الرئيسي: 39795 (Xtightvnc)
…
أصبح خادم VNC الخاص بك جاهزًا للاستخدام عند بدء تشغيل الخادم لديك، ويمكنك بدء تشغيله مثل أي خدمة systemd أخرى باستخدام الأوامرsystemctl يدير.
مع ذلك، لن يكون هناك فرق على جانب العميل. لإعادة الاتصال، أعد تشغيل نفق SSH:
$ ssh -L 59000 :localhost: 5901 -ج -ن -ل سامي عنوان IP الخاص بخادمك
ثم قم بإجراء اتصال جديد باستخدام برنامج عميل VNC الخاص بك المضيف المحلي: 59000 إنشاء اتصال بخادمك.
نتيجة
لديك الآن خادم VNC آمن يعمل على خادم Ubuntu 20.04. يمكنك الآن إدارة ملفاتك وبرامجك وإعداداتك بواجهة رسومية سهلة الاستخدام، وتشغيل برامج رسومية مثل متصفحات الويب عن بُعد.









