كيفية تثبيت وتكوين خادم VNC في CentOS و RHEL

في هذا الدليل، سنشرح كيفية تثبيت وتكوين وصول برمجيات بروتوكول فين سي في سنتوس 7/8 و الخادم الأحمر 9/8/7 إصدار المكتب عبر برنامج tigervnc-server للوصول إلى أجهزة المكتب البعيدة.

VNC (Virtual Network Computing) هو بروتوكول خادم-عميل يتيح لحسابات المستخدم الاتصال عن بُعد والتحكم في نظام بعيد باستخدام الموارد التي يوفرها واجهة المستخدم الرسومية.

على عكس خوادم VNC الأخرى المتاحة التي تتصل مباشرة بالمكتبة التشغيلية، مثل VNC X أو Vino، tigervnc-vncserver يستخدم آلية مختلفة تقوم بتكوين مكتبة افتراضية مستقلة لكل مستخدم.

المتطلبات

الخطوة 1: تثبيت وتهيئة VNC على CentOS

1. Tigervnc-server هو برنامج يقوم بتشغيل خادم Xvnc وبدء جلسات متوازية من Gnome أو أنظمة مكتب آخرى على سطح المكتب VNC.

A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.

$ sudo yum install tigervnc-server
Install TigerVNC in Linux

2. بعد تثبيت البرنامج، تسجيل الدخول باستخدام المستخدم الذي تريد تشغيل برنامج VNC وإصدار الأمر التالي في الصفحة الرئيسية من أجل تكوين كلمة مرور لخادم VNC.

كن حذرًا أن تكون كلمة المرور طولها ستة أحرف على الأقل.

$ su - your_user
$ vncpasswd
Create VNC Password

3. بعد ذلك، أضف ملف تكوين VNC لمستخدمك عبر ملف تكوين الظواهرة الموجود في شجرة systemd. من أجل نسخ ملف VNC النموذجي يجب عليك تشغيل الأمر cp التالي بأذونات المسؤول.

إذا لم يتم منح أذونات sudo لمستخدمك، قم إما بالتبديل مباشرة إلى حساب المستخدم الرئيسي أو تشغيل الأمر من حساب بأذونات رئيسية.

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4. في الخطوة التالية، قم بتعديل ملف تخصيص قالب VNC المنسوخ من /etc/systemd/system/ واستبدل القيم التالية لتعكس مستخدمك كما هو موضح في العينة التالية.

تمثل القيمة 1 بعد علامة @ رقم الشاشة (البورت 5900+display). أيضًا، سيتم زيادة البورت 5900 بمقدار 1 لكل خادم VNC تم بدء تشغيله.

# vi /etc/systemd/system/vncserver@\:1.service

أضف السطور التالية إلى الملف vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
Configure VNC Systemd

5. بعد إجراء التغييرات المناسبة إلى ملف خدمة VNC، أعد تحميل برنامج تهيئة systemd للتقاط الملف النصي المعدل لتكوين vnc وبدء خادم TigerVNC.

أيضًا، تحقق من حالة خدمة VNC وقم بتمكين التابع الشبكي VNC بشكل عام عن طريق إصدار الأوامر التالية.

# systemctl daemon-reload
# systemctl start vncserver@:1
# systemctl status vncserver@:1
# systemctl enable vncserver@:1
Start VNC Service

6. لتسمية المنافذ المفتوحة في حالة الاستماع التي يمتلكها خادم VNC، اجرِ الأمر ss، الذي يستخدم لعرض المجالات الشبكية. نظرًا لأنك بدأت مثيلًا واحدًا فقط من خادم VNC، فإن المنفذ الأول المفتوح هو 5901/TCP.

مرة أخرى، يجب تنفيذ الأمر ss بأذونات المسؤول. في حالة بدء مثيلات VNC أخرى بالتوازي لمستخدمين مختلفين، سيكون المنفذ 5902 للثانية، 5903 للثالثة، وهكذا. تُستخدم المنافذ 6000+ للسماح لتطبيقات X بالاتصال بخادم VNC.

# ss -tulpn| grep vnc
Verify VNC Listening Ports

7. للسماح للعملاء VNC الخارجيين بالاتصال بخادم VNC، تحتاج إلى التأكد من أن المنافذ المفتوحة المناسبة لخادم VNC مسموحة للمرور من خلال جدار الحماية.

في حالة بدأ مثيل واحد فقط من خادم VNC، يكفي فتح المنفذ الأول المخصص لـ VNC: 5901/TCP عن طريق إصدار الأوامر التالية لتطبيق إعدادات جدار الحماية في الوقت الفعلي.

# firewall-cmd --add-port=5901/tcp
# firewall-cmd --add-port=5901/tcp --permanent

الخطوة 2: الاتصال بواجهة بيئة CentOS عبر عميل VNC

8. يمكن إجراء اتصالات Graphical User Interface VNC عن بُعد غير المباشرة من أي نظام تشغيل مستقل بواجهة المستخدم الرسومية وعميل VNC متخصص.

A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.

للاتصال عن بُعد إلى مضيف CentOS الرسومية من نظام تشغيل Microsoft عبر بروتوكول VNC، فتح برنامج جاراتير VNC، أضف عنوان IP ورقم المنفذ لخادم VNC CentOS، ثم اضغط على مفتاح [أدخل].

بعد إنشاء الاتصال بالوين سيظهر تحذير يشير إلى أن الاتصال غير مشفر على شاشتك كما هو موضح في اللقطات التالية.

VNC Viewer Client
VNC Viewer Client Connection

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

VNC Server User Password
VNC Remote CentOS Desktop

10. في حالة ظهور رسالة جديدة التحقق على شاشتك وأن لا يتمتع مستخدمك بأذونات root، اضغط على زر إلغاء للاستمرار إلى مضيف CentOS الرسومية، كما هو موضح في اللقطة التالية.

VNC Server Authentication Warning

كن على علم بأن الاتصال بين الخادم والعميل بواسطة VNC وأي بيانات تبادلها (باستثناء كلمة المرور) تعمل على طريقة غير مشفرة. لتشفير وتأمين نقل بيانات VPN، تحتاج أولاً إلى إعداد نافذة SSH آمنة وتشغيل أي حركة VPN عبر نافذة SSH.

11. للاتصال عن بُعد إلى مضيف CentOS الرسومية بواسطة بروتوكول VNC من سطحات المضيف الأخرى CentOS، تأكد أولاً من تثبيت الباقة الموجودة على نظامك عن طريق إصدار الأمر التالي.

$ sudo yum install vinagre

12. لفتح أداة vinagre، انتقل إلى التطبيقات -> الأدوات -> مشاهدة الواجهة القريبة كما هو موضح في لقطة الشاشة التالية.

Open Vinagre Tool

13. للاتصال عن بُعد بواجهة CentOS Desktop، اضغط على زر الاتصال، حدد VNC من قائمة البروتوكولات وأضف عنوان IP ومنفذ (5900+رقم العرض) لخادم VNC البعيد. أيضًا، أعط كلمة المرور الموجهة للمستخدم المحدد في VNC كما هو موضح في اللقطات التالية.

Select Remote Desktop Protocol
Enter Remote VNC Details
Remote VNC CentOS Desktop

14. عُرض VNC آخر شهير للمنصات القائمة على Linux هو Remmina، عُرض الواجهة القريبة الذي يستخدم بشكل خاص في توزيعات Debian-based التي تعمل ببيئة واجهة GNOME.

لتثبيت عُرض Remmina Remote Desktop في توزيعات Debian-based استخدم الأمر التالي.

$ sudo apt-get install remmina

الخطوة 3: تكوين جلسات VNC متعددة على CentOS

15. في حالة الحاجة إلى تشغيل جلسة VNC جديدة ومتوازية تحت نفس المستخدم، افتح وحدة التحكم الطرفية، تسجيل الدخول بالمستخدم الذي تريد بدء جلسة VNC جديدة، وأطلق الأمر التالي.

عندما تبدأ الخادم لأول مرة سيُطلب منك تزويد كلمة مرور جديدة لهذه الجلسة. ومع ذلك، كن حذرًا أن هذه الجلسة تعمل بأذونات المستخدم المسجل وبشكل مستقل عن جلسة systemd VNC المبدئية.

$ vncserver
Start New VNC Session

16. ستُفتح جلسات VNC الجديدة على أول منافذ VNC المتاحة (5900+3 العرض في هذا المثال). لعرض المنافذ المفتوحة، قم بتنفيذ الأمر ss بدون امتيازات المستخدم الجذر كما هو موضح في المقتطف أدناه. سيقوم بسرد فقط جلسات VNC التي بدأتها مستخدمتك.

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. الآن، قم بالاتصال عن بُعد بسطح مكتب CentOS باستخدام جلسة VNC الجديدة هذه، وقم بتوفير الجمع بين العنوان IP والمنفذ (192.168.1.23:5903) في عميل VNC كما هو موضح في الصورة أدناه.

Connect to VNC Remote Desktop

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

$ su - your_user
$ killall Xvnc

هذا كل شيء! يمكنك الآن الوصول إلى نظامك CentOS وأداء المهام الإدارية باستخدام واجهة المستخدم الرسومية المقدمة من قبل نظام التشغيل.

Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/