سرور مجازی

آموزش صفر تا صد نصب VNC در لینوکس CentOS

نصب و فعالسازی VNC در سیستم عامل CentOS 7

آموزش صفر تا صد نصب VNC در لینوکس CentOS

 

 

مقدمه

” VNC یا Virtual Network Computing بستری است که کاربران را قادر می سازد تا به یک سیستم کامپیوتری از راه دور متصل شوند و از رابط کاربری گرافیکی (GUI) استفاده کنند. این دقیقا شبیه به کنترل از راه دور یک برنامه است، که کلید های کامپیوتر و کاری که ما با ماوس و صفحه کلید انجام می دهیم به کامپیوتر از راه دور منتقل می شود. کانفیگ VNC در لینوکس کار سختی نیست!

VNC همچنین کلیپ بورد را بین دو کامپیوتر به اشتراک می گذارد و بر پایه ی مدل سرویس گیرنده است. سرور VNC بر روی یک کامپیوتر راه دور اجرا می شود و و درخواست های مشتری را انجام می دهد. “

 

 

آموزش نصب و فعالسازی VNC

پیش نیازها:

سیستم عامل: CentOS 7

منابع مورد نیاز: رم ۲ گیگ

۱. ایجاد دو حساب کاربری

برای پیکربندی سرور مجازی VNC در لینوکس اول دو حساب ایجاد می کنیم. این دو حساب با VNC به CentOS 7 server متصل خواهند شد.

حساب ها عبارتند از :

  • joevnc
  • janevnc

از دستور زیر برای ایجاد حساب joevnc استفاده کنید:

sudo useradd -c “User Joe Configured for VNC Access” joevnc

 

حالا از دستور زیر برای تنظیم پسورد ورود حسابی که ایجاد کردیم، استفاده کنید:

sudo passwd joevnc

 

حالا می خواهیم اکانت janevnc را ایجاد کنیم:

sudo useradd -c “User Jane Configured for VNC Access” janevnc

 

برای janevnc پسورد تنظیم می کنیم:

sudo passwd janevnc

 

۲. نصب GNOME Desktop

 

 

” GNOME یک نرم افزار آزاد و متن باز هست که یک محیط دسکتاپ بسیار محبوب می باشد. “

 

 

محیط دسکتاپ دیگری مانند KDE وجود دارد، اما GNOME محبوب تر است. ما در این آموزش از GNOME برای ارتباط با سرور به صورت گرافیکی استفاده می کنیم.

sudo yum groupinstall -y “GNOME Desktop”

بسته به سرعت شبکه شما، این دستور می تواند چند دقیقه طول بکشد.

 

پس از اینکه بسته نصب شد سرور را ریبوت کنید:

sudo reboot

۳. نصب TigerVNC Server

 

 

” TigerVNC  یک نرم افزار است که اجازه اتصال Remote Desktop را می دهد. “

 

 

با استفاده از دستور زیر می توانید این نرم افزار را نصب کنید:

sudo yum install -y tigervnc-server

تا این مرحله ما  VNC server را داریم و GNOME desktop را نصب کردیم و دو حساب را ایجاد کرده ایم که می توانند با استفاده از VNC به سرور متصل شوند.

 

کانفیگ کردن VNC Service برای دو حساب

VNC  بعد از نصب برای اولین بار به طور خودکار شروع نمی شود. برای بررسی نصب VNC، دستور زیر را اجرا کنید:

sudo systemctl status vncserver@:.service

 

شما همچنین می توانید دستور زیر را اجرا کنید:

sudo systemctl is-enabled vncserver@.service

 

دستور بالا باید خروجی زیر را نشان دهد:

disabled

علت غیرفعال بودن آن این است که هر کاربر یک نمونه جداگانه از Daemon VNC را شروع می کند. به عبارت دیگر، VNC به عنوان یک فرایند واحد اجرا نمی شود که به هر درخواست کاربر پاسخ دهد. هر کاربری که با VNC به سرور متصل می شود یک نمونه Daemon جدید را شروع می کند.

CentOS 7 از Daemon Systemd استفاده می کند تا خدمات دیگری را انجام دهد. هر سرویسی که به صورت native تحت systemd اجرا می شود، یک فایل واحد دارد که توسط yum installer در دایرکتوری/lib/systemd/system قرار گرفته است.

فرایندهایی که هنگام بوت شدن به طور خودکار انجام می شوند، پیوندهایی دارد به فایل واحد سیستم که در مسیر /etc/systemd/system/ قرار دارد.

در مورد آن یک فایل واحد خدمات عمومی در پوشه / lib / systemd / system / ایجاد شده است، اما در مسیر / etc / systemd / system / هیچ پیوندی ایجاد نشده است.

با دستور زیر می توان این مورد را آزمایش کنید:

sudo ls -l /lib/systemd/system/vnc*

 

خروجی ای که مشاهده خواهید کرد به شکل زیر خواهد بود:

-rw-r–r–. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/vncserver@.service

 

حالا با دستور زیر برای آدرس /etc/systemd/system/ این مورد را بررسی می کنیم:

sudo ls -l /etc/systemd/system/*.wants/vnc*

 

اینبار این مورد وجود ندارد:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

 

بنابراین اولین قدم برای ما ایجاد دو نمونه جداگانه VNC برای دو حساب است.

برای این کار باید دو نسخه از پرونده VNC در /etc/system/system ایجاد کنیم.

در کدهای زیر اینکار را با نام های مختلف انجام می دهیم:

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:4.service
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:5.service

 

حالا باید فایل واحد سرویس را ویرایش کنیم..

فایل /etc/systemd/system/vncserver@:4.service را با vi editor یا nano باز کنید:

sudo vi /etc/systemd/system/vncserver@:4.service

 

حالا باید در قسمت [Service] فایل تغییرات زیر را اعمال کنید:

به جای <USER> کلمه joevnc را جایگزین کنید.

هم چنین عبارت -geometry 1280×1024 را در پایان پارامتر ExecStart قرار دهید. این مورد فقط اندازه صفحه نمایش VNC را تنظیم می کند.

شما در مجموع دو خط را تغییر خواهید داد، در ادامه فایل ویرایش شده را می توانید ببینید:

# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service
# 2. Edit <USER> and vncserver parameters appropriately
#   (“runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2”)
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
. . .
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’
ExecStart=/sbin/runuser -l joevnc -c “/usr/bin/vncserver %i -geometry 1280×1024”
PIDFile=/home/joevnc/.vnc/%H%i.pid
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’
[Install]
WantedBy=multi-user.target

 

 

” جهت انجام اقدامات بعدی پیکربندی VNC در لینوکس فایل را ذخیره کنید و از ویرایشگر خارج شوید. “

 

 

به طور مشابه فایل /etc/systemd/system/vncserver@:5.service را نیز باید ویرایش کنید:

sudo vi /etc/systemd/system/vncserver@:5.service

در ادامه فقط بخش [Service] را برایتان قرار داده ایم:

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
:’ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 ||
“ExecStart=/sbin/runuser -l janevnc -c “/usr/bin/vncserver %i -geometry 1280×1024
PIDFile=/home/janevnc/.vnc/%H%i.pid
:’ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 ||

 

در ادامه باید دستور زیر را اجرا کنید تا systemd daemon بارگزاری شود و اطمینان حاصل کنید که VNC برای دو کاربر در زمان بوت شروع می شود:

sudo systemctl daemon-reload

 

ابتدا بایستی سرور برای حساب اول فعال شود:

sudo systemctl enable vncserver@:4.service

 

فعال سازی برای حساب دوم:

sudo systemctl enable vncserver@:5.service

حالا شما دو VNC برای دو کاربر پیکربندی کرده اید.

 

کانفیگ فایروال

حالا باید فایروال را به شکلی کانفیگ کنیم تا فقط به پورت های 5904 و 5905 اجازه دسترسی دهد.

معمولا فایروال به صورت دیفالت هنگام بوت شدن سرور فعال می شود اما باید حتما این مورد را چک کنیم:

sudo firewall-cmd –state

 

و باید حتما خروجی زیر را بگیریم:

running

 

اگر خروجی “not running” دریافت کردیم با اجرای دستور زیر حتما فایروال فعال خواهد شد:

sudo systemctl start firewalld

 

اکنون قوانین مربوط به پورت های 5904 و 5905 را اضافه کنید:

sudo firewall-cmd –permanent –zone=public –add-port=5904-5905/tcp

خروجی باید success باشد.

 

حالا باید دستور بارگزاری فایروال را اجرا کنید:

sudo firewall-cmd –reload

خروجی باید success باشد.

ست کردن پسورد برای VNC

در این مرحله باید برای کاربران پسوردهای ورود به VNC را تنظیم کنیم. این پسورد کلمه عبور کاربران لینوکس نیست، بلکه پسوردی برای ورود به VNC است.

یکبار دیگر به عنوان joevnc وارد SSH شویم:

ssh joevnc@your_server_ip

 

دستور زیر را اجرا کنید:

vncserver

 

همانطور که در خروجی زیر مشاهده می کنید، سرور از joevnc برای تنظیم یک رمز عبور VNC درخواست خواهد کرد. پس از تایپ کردن در رمز عبور، برنامه همچنین تعدادی از فایل های ایجاد شده در دایرکتوری خانگی کاربر را نشان می دهد.

You will require a password to access your desktops.

Password:

Verify:

xauth:  file /home/joevnc/.Xauthority does not exist

New ‘localhost.localdomain:1 (joevnc)’ desktop is localhost.localdomain:1

Creating default startup script /home/joevnc/.vnc/xstartup

Starting applications specified in /home/joevnc/.vnc/xstartup

Log file is /home/joevnc/.vnc/localhost.localdomain:1.log

 

حالا یک SSH دیگر باز کنید و به عنوان janevnc وارد شوید. در اینجا هم VNC را باید راه اندازی کنید و رمز عبور را برای janevnc تنظیم کنید:

vncserver

باید خروجی های مشابهی نیز برای janevnc ببینید.

 

در پایان باید از SSH اصلی سرویس را ریلود کنید:

sudo systemctl daemon-reload
sudo systemctl restart vncserver@:4.service
sudo systemctl restart vncserver@:5.service

اتصال به سرور از راه دور با استفاده از  VNC client

فرض می کنیم کاربران joevnc و janevnc در حال تلاش برای اتصال به سرور CentOS 7 از رایانه های خود هستند.

هر کدام به یک سرویس گیرنده VNC برای ویندوز نیاز دارند تا به دسکتاپ از راه دور وارد شوند. این کلاینت مانند PuTTY است، با این تفاوت که خروجی گرافیکی را نشان می دهد. VNC client های متفاوتی وجود دارد اما موردی که ما در این آموزش استفاده می کنیم، RealVNC است.

وقتی VNC Viewer شروع به کار می کند، یک باکس شبیه به تصویر زیر نمایش داده می شود:

 

در قسمت  VNC Server، آدرس IP سرور CentOS 7 خود را اضافه کنید. شماره پورت 5904 را بعد از IP سرور با استفاده از ” : “ مشخص کنید. ما در این آموزش از 5904 استفاده کردیم زیرا این سرویس VNC برای joevnc است.

همچنین تصمیم گرفتیم که VNC Viewer روش رمزگذاری را انتخاب کند. این گزینه فقط رمز عبور ارسال شده در شبکه را رمزگذاری می کند. هر گونه ارتباط بعدی با سرور، رمزگذاری نخواهد شد.

 

بعد از اینکه دکمه کانکت را زدیم، یک پیغام اخطار به شکل زیر نشان می دهد:

 

پس از اینکه هشدار را بپذیرید، در مرحله بعد فرم وارد کردن پسورد نمایش داده می شود.

رمز ورود VNC joevnc را که قبلا تنظیم کرده اید وارد کنید.

 

یک پنجره جدید نشان می دهد که دسکتاپ GNOME برای سرور Remote CentOS شما است:

 

امیدواریم این مطلب آموزشی برایتان مفید واقع شده باشد.

5/5 - (9 votes)
استریم Stream چیست؟ انتخاب یک سرور لایو استریم خوب
ادامه مطلب
دکمه بازگشت به بالا