VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04
برخی از کاربران VPS نسبتا ارزانی را با ویندوز برای اجرای خدمات دسکتاپ از راه دور اجاره می کنند. همین کار را می توان در لینوکس بدون میزبانی سخت افزار خود در مرکز داده یا اجاره سرور اختصاصی انجام داد. برخی از افراد به یک محیط گرافیکی آشنا برای آزمایش و توسعه یا یک دسکتاپ راه دور با یک کانال گسترده برای کار از دستگاه های تلفن همراه نیاز دارند. گزینه های زیادی برای استفاده از سیستم محاسبات شبکه مجازی (VNC) مبتنی بر پروتکل Remote FrameBuffer (RFB) وجود دارد. در این مقاله کوتاه به شما خواهیم گفت که چگونه آن را روی یک ماشین مجازی با هر Hypervisor پیکربندی کنید.

شرح:

انتخاب سرور VNC
نصب و پیکربندی
راه اندازی یک سرویس از طریق systemd
اتصال دسکتاپ

انتخاب سرور VNC

سرویس VNC را می توان در سیستم مجازی سازی تعبیه کرد و هایپروایزر آن را با دستگاه های شبیه سازی شده متصل می کند و نیازی به پیکربندی اضافی نخواهد بود. این گزینه شامل سربار قابل توجهی است و توسط همه ارائه دهندگان پشتیبانی نمی شود - حتی در یک پیاده سازی با منابع کمتر، زمانی که به جای شبیه سازی یک دستگاه گرافیکی واقعی، یک انتزاع ساده شده (framebuffer) به ماشین مجازی منتقل می شود. گاهی اوقات یک سرور VNC به یک سرور X در حال اجرا گره می خورد، اما این روش برای دسترسی به یک ماشین فیزیکی مناسب تر است و در یک مجازی یکسری مشکلات فنی ایجاد می کند. ساده ترین راه برای نصب سرور VNC، استفاده از سرور X داخلی است. این نیازی به دستگاه های فیزیکی (آداپتور ویدئو، صفحه کلید و ماوس) یا شبیه سازی آنها با استفاده از Hypervisor ندارد و بنابراین برای هر نوع VPS مناسب است.

نصب و پیکربندی

ما به یک ماشین مجازی با سرور اوبونتو 18.04 LTS در پیکربندی پیش فرض نیاز داریم. چندین سرور VNC در مخازن استاندارد این توزیع وجود دارد: TightVNC, TigerVNC, x11vnc و دیگران. ما در TigerVNC مستقر شدیم - یک چنگال فعلی TightVNC که توسط توسعه دهنده پشتیبانی نمی شود. راه اندازی سایر سرورها نیز به همین روش انجام می شود. شما همچنین باید یک محیط دسکتاپ را انتخاب کنید: به نظر ما گزینه بهینه XFCE به دلیل نیازهای نسبتا کم برای منابع محاسباتی است. کسانی که مایلند می توانند DE یا WM دیگری نصب کنند: همه اینها به ترجیحات شخصی بستگی دارد، اما انتخاب نرم افزار مستقیماً بر نیاز به RAM و هسته های محاسباتی تأثیر می گذارد.

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

نصب محیط دسکتاپ با تمام وابستگی ها با دستور زیر انجام می شود:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

در مرحله بعد باید سرور VNC را نصب کنید:

sudo apt-get install tigervnc-standalone-server tigervnc-common

اجرای آن به عنوان superuser ایده بدی است. ایجاد یک کاربر و گروه:

sudo adduser vnc

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

بیایید کاربر را به گروه sudo اضافه کنیم تا بتواند وظایف مربوط به مدیریت را انجام دهد. اگر چنین نیازی وجود ندارد، می توانید این مرحله را نادیده بگیرید:

sudo gpasswd -a vnc sudo

مرحله بعدی اجرای سرور VNC با امتیازات کاربر vnc برای ایجاد رمز عبور ایمن و فایل های پیکربندی در دایرکتوری ~/.vnc/ است. طول رمز عبور می تواند از 6 تا 8 کاراکتر باشد (کاراکترهای اضافی قطع می شوند). در صورت لزوم، یک رمز عبور نیز برای مشاهده تنظیم می شود، یعنی. بدون دسترسی به صفحه کلید و ماوس دستورات زیر به عنوان کاربر vnc اجرا می شوند:

su - vnc
vncserver -localhost no

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04
به طور پیش فرض، پروتکل RFB از محدوده پورت TCP از 5900 تا 5906 استفاده می کند - این به اصطلاح است. پورت های نمایش، هر کدام مربوط به یک صفحه سرور X است. در این حالت، پورت ها با صفحه نمایش از :0 تا:6 مرتبط می شوند. نمونه سرور VNC که راه اندازی کردیم به پورت 5901 گوش می دهد (صفحه نمایش: 1). نمونه های دیگر می توانند روی پورت های دیگر با صفحه های :2، :3 و غیره کار کنند. قبل از پیکربندی بیشتر، باید سرور را متوقف کنید:

vncserver -kill :1

دستور باید چیزی شبیه به این نمایش دهد: "کشتن Xtigervnc process ID 18105... موفقیت!"

وقتی TigerVNC شروع می شود، اسکریپت ~/.vnc/xstartup را برای پیکربندی تنظیمات پیکربندی اجرا می کند. بیایید اسکریپت خودمان را ایجاد کنیم، ابتدا یک نسخه پشتیبان از اسکریپت موجود را ذخیره می کنیم، در صورت وجود:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

جلسه محیط دسکتاپ XFCE با اسکریپت xstartup زیر شروع می شود:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

دستور xrdb برای VNC برای خواندن فایل .Xresources در فهرست اصلی مورد نیاز است. در آنجا کاربر می تواند تنظیمات مختلف گرافیکی دسکتاپ را تعریف کند: رندر فونت، رنگ ترمینال، تم های مکان نما و غیره. اسکریپت باید قابل اجرا باشد:

chmod 755 ~/.vnc/xstartup

این کار راه اندازی سرور VNC را کامل می کند. اگر آن را با دستور vncserver -localhost no (به عنوان کاربر vnc) اجرا کنید، می توانید با رمز عبور مشخص شده قبلی متصل شوید و تصویر زیر را ببینید:

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

راه اندازی یک سرویس از طریق systemd

راه‌اندازی دستی سرور VNC برای استفاده رزمی مناسب نیست، بنابراین ما یک سرویس سیستم را پیکربندی می‌کنیم. دستورات به صورت root اجرا می شوند (ما از sudo استفاده می کنیم). ابتدا بیایید یک فایل واحد جدید برای سرور خود ایجاد کنیم:

sudo nano /etc/systemd/system/[email protected]

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

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

سپس باید فایل جدید را به systemd اطلاع داده و آن را فعال کنید:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

عدد 1 در نام شماره صفحه را مشخص می کند.

سرور VNC را متوقف کنید، آن را به عنوان یک سرویس راه اندازی کنید و وضعیت را بررسی کنید:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

اگر سرویس در حال اجرا است، باید چیزی شبیه به این دریافت کنیم.

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

اتصال دسکتاپ

پیکربندی ما از رمزگذاری استفاده نمی کند، بنابراین بسته های شبکه می توانند توسط مهاجمان رهگیری شوند. علاوه بر این، در سرورهای VNC اغلب آسیب پذیری ها را پیدا کنید، بنابراین نباید آنها را برای دسترسی از اینترنت باز کنید. برای اتصال ایمن به رایانه محلی خود، باید ترافیک را در یک تونل SSH بسته بندی کنید و سپس یک کلاینت VNC را پیکربندی کنید. در ویندوز، می توانید از یک کلاینت گرافیکی SSH (به عنوان مثال، PuTTY) استفاده کنید. برای امنیت، TigerVNC روی سرور فقط به لوکال هاست گوش می دهد و مستقیماً از شبکه های عمومی قابل دسترسی نیست:


sudo netstat -ap |more

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04
در لینوکس، FreeBSD، OS X و سایر سیستم‌عامل‌های مشابه یونیکس، یک تونل از رایانه مشتری با استفاده از ابزار ssh ساخته می‌شود (sshd باید روی سرور VNC اجرا شود):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

گزینه -L پورت 5901 اتصال راه دور را به پورت 5901 در لوکال هاست متصل می کند. گزینه -C فشرده سازی را فعال می کند و گزینه -N به ssh می گوید که دستور remote را اجرا نکند. گزینه -l ورود برای ورود از راه دور را مشخص می کند.

پس از راه اندازی تونل در رایانه محلی، باید مشتری VNC را راه اندازی کنید و با استفاده از رمز عبور مشخص شده قبلی برای دسترسی به سرور VNC، با میزبان 127.0.0.1:5901 (localhost:5901) ارتباط برقرار کنید. اکنون می توانیم از طریق یک تونل رمزگذاری شده با محیط دسکتاپ گرافیکی XFCE در VPS به صورت ایمن ارتباط برقرار کنیم. در تصویر، ابزار برتر در شبیه ساز ترمینال در حال اجرا است تا مصرف کم ماشین مجازی از منابع محاسباتی را نشان دهد. سپس همه چیز به برنامه های کاربر بستگی دارد.

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04
شما می توانید یک سرور VNC را در لینوکس روی تقریباً هر VPS نصب و پیکربندی کنید. این نیازی به پیکربندی های گران قیمت و منابع فشرده با شبیه سازی آداپتورهای ویدئویی یا خرید مجوزهای نرم افزار تجاری ندارد. علاوه بر گزینه سرویس سیستم که در نظر گرفتیم، موارد دیگری نیز وجود دارد: راه اندازی در حالت daemon (از طریق /etc/rc.local) هنگامی که سیستم بوت می شود یا در صورت تقاضا از طریق inetd. مورد دوم برای ایجاد تنظیمات چند کاربره جالب است. Superserver اینترنت سرور VNC را راه اندازی می کند و کلاینت را به آن متصل می کند و سرور VNC صفحه جدیدی ایجاد می کند و جلسه را شروع می کند. برای احراز هویت درون آن، می‌توانید از یک مدیر نمایشگر گرافیکی استفاده کنید (به عنوان مثال، LightDM) و پس از قطع ارتباط کلاینت، جلسه بسته می شود و تمامی برنامه هایی که با صفحه کار می کنند خاتمه می یابد.

VPS در لینوکس با رابط گرافیکی: راه اندازی یک سرور VNC در اوبونتو 18.04

منبع: www.habr.com

اضافه کردن نظر