VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04

VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04
ผู้ใช้บางรายเช่า VPS ที่มีราคาไม่แพงนักพร้อม Windows เพื่อใช้บริการเดสก์ท็อประยะไกล เช่นเดียวกันนี้สามารถทำได้บน Linux โดยไม่ต้องโฮสต์ฮาร์ดแวร์ของคุณเองในศูนย์ข้อมูลหรือเช่าเซิร์ฟเวอร์เฉพาะ บางคนต้องการสภาพแวดล้อมแบบกราฟิกที่คุ้นเคยสำหรับการทดสอบและพัฒนา หรือมีเดสก์ท็อประยะไกลที่มีช่องทางกว้างสำหรับการทำงานจากอุปกรณ์เคลื่อนที่ มีตัวเลือกมากมายสำหรับการใช้ระบบ Virtual Network Computing (VNC) ที่ใช้โปรโตคอล Remote FrameBuffer (RFB) ในบทความสั้น ๆ นี้ เราจะบอกวิธีกำหนดค่าบนเครื่องเสมือนด้วยไฮเปอร์ไวเซอร์

คำศัพท์:

การเลือกเซิร์ฟเวอร์ VNC
การติดตั้งและการกำหนดค่า
การเริ่มบริการผ่าน systemd
การเชื่อมต่อเดสก์ท็อป

การเลือกเซิร์ฟเวอร์ VNC

สามารถสร้างบริการ VNC ในระบบเสมือนจริงได้ และไฮเปอร์ไวเซอร์จะเชื่อมต่อกับอุปกรณ์จำลอง และไม่จำเป็นต้องกำหนดค่าเพิ่มเติม ตัวเลือกนี้เกี่ยวข้องกับค่าใช้จ่ายที่สำคัญและไม่ได้รับการสนับสนุนจากผู้ให้บริการทั้งหมด - แม้ในการใช้งานที่ใช้ทรัพยากรน้อยกว่า เมื่อแทนที่จะจำลองอุปกรณ์กราฟิกจริง สิ่งที่เป็นนามธรรมแบบง่าย (framebuffer) จะถูกถ่ายโอนไปยังเครื่องเสมือน บางครั้งเซิร์ฟเวอร์ VNC จะเชื่อมโยงกับเซิร์ฟเวอร์ X ที่ทำงานอยู่ แต่วิธีนี้เหมาะสำหรับการเข้าถึงเครื่องจริงมากกว่าและบนเครื่องเสมือนจะทำให้เกิดปัญหาทางเทคนิคหลายประการ วิธีที่ง่ายที่สุดในการติดตั้งเซิร์ฟเวอร์ VNC คือการใช้เซิร์ฟเวอร์ X ในตัว ไม่จำเป็นต้องใช้อุปกรณ์ทางกายภาพ (อะแดปเตอร์วิดีโอ แป้นพิมพ์ และเมาส์) หรือการจำลองโดยใช้ไฮเปอร์ไวเซอร์ ดังนั้นจึงเหมาะสำหรับ VPS ทุกประเภท

การติดตั้งและการกำหนดค่า

เราจะต้องมีเครื่องเสมือนที่มี Ubuntu Server 18.04 LTS ในการกำหนดค่าเริ่มต้น มีเซิร์ฟเวอร์ VNC หลายตัวในที่เก็บมาตรฐานของการแจกจ่ายนี้: TightVNC, ไทเกอร์วีเอ็นซี, x11vnc และคนอื่น ๆ. เราตัดสินใจเลือก TigerVNC ซึ่งเป็นทางแยกปัจจุบันของ TightVNC ซึ่งนักพัฒนาไม่รองรับ การตั้งค่าเซิร์ฟเวอร์อื่นก็ทำในลักษณะเดียวกัน คุณต้องเลือกสภาพแวดล้อมเดสก์ท็อปด้วย: ในความคิดของเรา ตัวเลือกที่เหมาะสมที่สุดคือ XFCE เนื่องจากความต้องการทรัพยากรการประมวลผลค่อนข้างต่ำ ผู้ที่ต้องการสามารถติดตั้ง DE หรือ WM อื่นได้: ทั้งหมดขึ้นอยู่กับความชอบส่วนตัว แต่การเลือกซอฟต์แวร์ส่งผลโดยตรงต่อความต้องการ RAM และแกนประมวลผล

VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 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 บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04

มาเพิ่มผู้ใช้ในกลุ่ม sudo เพื่อให้เขาสามารถทำงานที่เกี่ยวข้องกับการบริหารได้ หากไม่มีความจำเป็นดังกล่าว คุณสามารถข้ามขั้นตอนนี้ได้:

sudo gpasswd -a vnc sudo

ขั้นตอนต่อไปคือการรันเซิร์ฟเวอร์ VNC ด้วยสิทธิ์ผู้ใช้ vnc เพื่อสร้างรหัสผ่านที่ปลอดภัยและไฟล์การกำหนดค่าในไดเร็กทอรี ~/.vnc/ ความยาวของรหัสผ่านสามารถมีได้ตั้งแต่ 6 ถึง 8 ตัวอักษร (อักขระพิเศษจะถูกตัดออก) หากจำเป็นให้ตั้งรหัสผ่านสำหรับการดูเท่านั้นเช่น โดยไม่ต้องใช้คีย์บอร์ดและเมาส์ คำสั่งต่อไปนี้ถูกดำเนินการในฐานะผู้ใช้ vnc:

su - vnc
vncserver -localhost no

VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04
ตามค่าเริ่มต้น โปรโตคอล RFB จะใช้ช่วงพอร์ต TCP ตั้งแต่ 5900 ถึง 5906 ซึ่งเรียกว่า พอร์ตแสดงผล แต่ละพอร์ตสอดคล้องกับหน้าจอเซิร์ฟเวอร์ X ในกรณีนี้ พอร์ตจะเชื่อมโยงกับหน้าจอตั้งแต่ :0 ถึง :6 อินสแตนซ์เซิร์ฟเวอร์ VNC ที่เราเปิดตัวรับฟังพอร์ต 5901 (หน้าจอ: 1) อินสแตนซ์อื่นสามารถทำงานบนพอร์ตอื่นที่มีหน้าจอ :2, :3 ฯลฯ ก่อนกำหนดค่าเพิ่มเติม คุณต้องหยุดเซิร์ฟเวอร์:

vncserver -kill :1

คำสั่งควรแสดงข้อความดังนี้: “การฆ่ากระบวนการ Xtigervnc 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 บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04

การเริ่มบริการผ่าน systemd

การเริ่มต้นเซิร์ฟเวอร์ VNC ด้วยตนเองไม่เหมาะสำหรับการใช้งานการต่อสู้ ดังนั้นเราจะกำหนดค่าบริการระบบ คำสั่งถูกดำเนินการในฐานะรูท (เราใช้ 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 บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04

การเชื่อมต่อเดสก์ท็อป

การกำหนดค่าของเราไม่ได้ใช้การเข้ารหัส ดังนั้นผู้โจมตีจึงสามารถดักจับแพ็กเก็ตเครือข่ายได้ นอกจากนี้ในเซิร์ฟเวอร์ VNC ค่อนข้างบ่อย ค้นหาช่องโหว่ดังนั้นคุณจึงไม่ควรเปิดเพื่อเข้าถึงจากอินเทอร์เน็ต หากต้องการเชื่อมต่ออย่างปลอดภัยบนเครื่องคอมพิวเตอร์ของคุณ คุณจะต้องจัดแพ็คเกจการรับส่งข้อมูลลงในอุโมงค์ SSH แล้วกำหนดค่าไคลเอนต์ VNC บน Windows คุณสามารถใช้ไคลเอ็นต์ SSH แบบกราฟิกได้ (เช่น PuTTY) เพื่อความปลอดภัย TigerVNC บนเซิร์ฟเวอร์จะรับฟังเฉพาะ localhost เท่านั้นและไม่สามารถเข้าถึงได้โดยตรงจากเครือข่ายสาธารณะ:


sudo netstat -ap |more

VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 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 บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04
คุณสามารถติดตั้งและกำหนดค่าเซิร์ฟเวอร์ VNC ใน Linux บน VPS เกือบทุกรุ่น ไม่จำเป็นต้องกำหนดค่าราคาแพงและใช้ทรัพยากรมากด้วยการจำลองอะแดปเตอร์วิดีโอหรือการซื้อลิขสิทธิ์ซอฟต์แวร์เชิงพาณิชย์ นอกเหนือจากตัวเลือกการบริการของระบบที่เราพิจารณาแล้ว ยังมีตัวเลือกอื่นๆ อีก: เปิดใช้งานในโหมด daemon (ผ่าน /etc/rc.local) เมื่อระบบบู๊ตหรือตามความต้องการผ่าน inetd สิ่งหลังนี้น่าสนใจสำหรับการสร้างการกำหนดค่าผู้ใช้หลายคน Internet Superserver จะเริ่มเซิร์ฟเวอร์ VNC และเชื่อมต่อไคลเอนต์เข้ากับมัน และเซิร์ฟเวอร์ VNC จะสร้างหน้าจอใหม่และเริ่มเซสชัน หากต้องการตรวจสอบสิทธิ์ภายใน คุณสามารถใช้ตัวจัดการการแสดงผลแบบกราฟิก (เช่น LightDM) และหลังจากยกเลิกการเชื่อมต่อไคลเอ็นต์ เซสชันจะถูกปิดและโปรแกรมทั้งหมดที่ทำงานกับหน้าจอจะถูกยกเลิก

VPS บน Linux พร้อมอินเทอร์เฟซแบบกราฟิก: เปิดตัวเซิร์ฟเวอร์ VNC บน Ubuntu 18.04

ที่มา: will.com

เพิ่มความคิดเห็น