VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04

VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04
חלק מהמשתמשים שוכרים VPS זול יחסית עם Windows כדי להפעיל שירותי שולחן עבודה מרוחק. ניתן לעשות את אותו הדבר בלינוקס מבלי לארח את החומרה שלך במרכז נתונים או לשכור שרת ייעודי. יש אנשים שזקוקים לסביבה גרפית מוכרת לבדיקה ופיתוח, או לשולחן עבודה מרוחק עם ערוץ רחב לעבודה ממכשירים ניידים. ישנן אפשרויות רבות לשימוש במערכת מחשוב רשת וירטואלית (VNC) מבוססת פרוטוקול Remote FrameBuffer (RFB). במאמר קצר זה נספר לכם כיצד להגדיר אותו במכונה וירטואלית עם כל היפרוויזר.

אופציות:

בחירת שרת VNC
התקנה ותצורה
התחלת שירות באמצעות systemd
חיבור לשולחן העבודה

בחירת שרת VNC

ניתן לבנות את שירות ה-VNC במערכת הווירטואליזציה, וההיפרוויזר יחבר אותו למכשירי האמולציה ולא תידרש תצורה נוספת. אפשרות זו כרוכה בתקורה משמעותית ואינה נתמכת על ידי כל הספקים - גם ביישום פחות עתיר משאבים, כאשר במקום לחקות התקן גרפי אמיתי, מועברת הפשטה (framebuffer) פשוטה למכונה הוירטואלית. לפעמים שרת VNC קשור לשרת X פועל, אבל שיטה זו מתאימה יותר לגישה למכונה פיזית, ובווירטואלי היא יוצרת מספר קשיים טכניים. הדרך הקלה ביותר להתקין שרת VNC היא באמצעות שרת X מובנה. הוא אינו דורש מכשירים פיזיים (מתאם וידאו, מקלדת ועכבר) או אמולציה שלהם באמצעות היפרוויזר, ולכן מתאים לכל סוג של VPS.

התקנה ותצורה

נצטרך מכונה וירטואלית עם Ubuntu Server 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

להפעיל אותו בתור משתמש-על זה רעיון רע. צור משתמש וקבוצה:

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

הפקודה אמורה להציג משהו כמו זה: "Killing Xtigervnc process ID 18105... success!"

כאשר 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/vncserver@.service

הסמל @ בשם מאפשר לך להעביר ארגומנט להגדרת השירות. במקרה שלנו, הוא מציין את יציאת התצוגה של 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

לאחר מכן עליך להודיע ​​למערכת על הקובץ החדש ולהפעיל אותו:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service

המספר 1 בשם מציין את מספר המסך.

עצור את שרת VNC, הפעל אותו כשירות ובדוק את המצב:

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

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

אם השירות פועל, אנחנו צריכים לקבל משהו כזה.

VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04

חיבור לשולחן העבודה

התצורה שלנו אינה משתמשת בהצפנה, כך שתוקפים יכולים ליירט מנות רשת. בנוסף, בשרתי VNC לעתים קרובות למדי למצוא נקודות תורפה, אז לא כדאי לפתוח אותם לגישה מהאינטרנט. כדי להתחבר בצורה מאובטחת במחשב המקומי שלך, עליך לארוז את התעבורה לתוך מנהרת SSH ולאחר מכן להגדיר לקוח VNC. ב-Windows, אתה יכול להשתמש בלקוח SSH גרפי (לדוגמה, PuTTY). מטעמי אבטחה, TigerVNC בשרת מאזין רק ל-localhost ואינו נגיש ישירות מרשתות ציבוריות:


sudo netstat -ap |more

VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04
ב-Linux, FreeBSD, OS X ומערכות הפעלה אחרות דמויות UNIX, מנהרה ממחשב הלקוח נעשית באמצעות כלי השירות ssh (sshd חייב לפעול בשרת VNC):

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

האפשרות -L קושרת את יציאה 5901 של החיבור המרוחק ליציאה 5901 ב-localhost. האפשרות -C מאפשרת דחיסה, והאפשרות -N אומרת ל-ssh לא לבצע את הפקודה מרחוק. האפשרות -l מציינת כניסה עבור כניסה מרחוק.

לאחר הגדרת המנהרה במחשב המקומי, עליך להפעיל את לקוח VNC וליצור חיבור למארח 127.0.0.1:5901 (localhost:5901), באמצעות הסיסמה שצוינה קודם לכן כדי לגשת לשרת VNC. כעת אנו יכולים לתקשר בצורה מאובטחת באמצעות מנהרה מוצפנת עם סביבת שולחן העבודה הגרפית XFCE ב-VPS. בצילום המסך, כלי השירות העליון פועל באמולטור המסוף כדי להראות את הצריכה הנמוכה של משאבי מחשוב של המכונה הוירטואלית. אז הכל יהיה תלוי ביישומי משתמש.

VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04
אתה יכול להתקין ולהגדיר שרת VNC בלינוקס כמעט בכל VPS. הדבר אינו מצריך תצורות יקרות ועתירות משאבים עם אמולציה של מתאם וידאו או רכישת רישיונות תוכנה מסחריים. בנוסף לאפשרות שירות המערכת ששקלנו, ישנם אחרים: הפעל במצב daemon (דרך /etc/rc.local) כאשר המערכת מאתחלת או לפי דרישה באמצעות inetd. האחרון מעניין ליצירת תצורות מרובות משתמשים. שרת הסופר-אינטרנט יתחיל את שרת ה-VNC ויחבר את הלקוח אליו, ושרת ה-VNC יצור מסך חדש ויתחיל את ההפעלה. כדי לבצע אימות בתוכו, אתה יכול להשתמש במנהל תצוגה גרפית (לדוגמה, אור), ולאחר ניתוק הלקוח, ההפעלה תיסגר וכל התוכניות שעובדות עם המסך יסתיימו.

VPS בלינוקס עם ממשק גרפי: השקת שרת VNC באובונטו 18.04

מקור: www.habr.com