ค้นหาเว็บไซต์

วิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ VNC บน Ubuntu


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

ในบทความนี้ เราจะอธิบายวิธีการติดตั้งและกำหนดค่า เซิร์ฟเวอร์ VNC บนรุ่น Ubuntu 18.04 Desktop ผ่านทางโปรแกรม tigervnc-server

สภาพแวดล้อมการทดสอบ

VNC Server: 192.168.56.108
VNC Client: 192.168.56.2

ติดตั้งสภาพแวดล้อมเดสก์ท็อปใน Ubuntu

อย่างที่บอกไปว่า VNC เป็นระบบแชร์เดสก์ท็อป ดังนั้นคุณจึงต้องติดตั้งสภาพแวดล้อมเดสก์ท็อปบนเซิร์ฟเวอร์ Ubuntu ของคุณ คุณสามารถติดตั้ง DE ที่คุณเลือกได้โดยการรันคำสั่งที่เหมาะสมด้านล่างนี้ เพื่อวัตถุประสงค์ของบทความนี้ เราจะติดตั้ง Ubuntu Gnome (เวอร์ชันอย่างเป็นทางการ)

sudo apt-get install ubuntu-desktop		#Default Ubuntu desktop
sudo apt install ubuntu-gnome-desktop	        #Ubuntu Gnome (Official flavor)
sudo apt-get install xfce4			#LXDE
sudo apt-get install lxde			#LXDE
sudo apt-get install kubuntu-desktop		#KDE

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

เซิร์ฟเวอร์ Tigervnc เป็นโปรแกรม VNC หลายแพลตฟอร์มความเร็วสูง ซึ่งรันเซิร์ฟเวอร์ Xvnc และเริ่มเซสชันคู่ขนานของ Gnome หรือสภาพแวดล้อมเดสก์ท็อปอื่นๆ บนเดสก์ท็อป VNC

หากต้องการติดตั้งเซิร์ฟเวอร์ TigerVNC และแพ็คเกจอื่นๆ ที่เกี่ยวข้องใน Ubuntu ให้รันคำสั่งต่อไปนี้

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer

ตอนนี้เริ่มต้นเซิร์ฟเวอร์ VNC โดยเรียกใช้คำสั่ง vncserver ในฐานะผู้ใช้ปกติ การดำเนินการนี้จะสร้างการกำหนดค่าเริ่มต้นที่จัดเก็บไว้ในไดเร็กทอรี $HOME/.vnc และจะแจ้งให้คุณตั้งรหัสผ่านเข้าสู่ระบบด้วย

ป้อนรหัสผ่าน (ซึ่งต้องมีความยาวอย่างน้อยหกตัวอักษร) และยืนยัน/ยืนยัน จากนั้นตั้งค่ารหัสผ่านสำหรับดูอย่างเดียวหากต้องการดังต่อไปนี้

vncserver
ls -l ~/.vnc 

ต่อไป เราต้องกำหนดค่า DE ให้ทำงานกับเซิร์ฟเวอร์ VNC ดังนั้น ให้หยุดเซิร์ฟเวอร์ VNC โดยใช้คำสั่งต่อไปนี้ เพื่อทำการกำหนดค่าบางอย่าง

vncserver -kill :1

หากต้องการกำหนดค่า GNOME หรือเดสก์ท็อปใดก็ตามที่คุณติดตั้งไว้ ให้สร้างไฟล์ชื่อ xstartup ใต้ไดเร็กทอรีการกำหนดค่าโดยใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบ

vi ~/.vnc/xstartup

เพิ่มบรรทัดต่อไปนี้ในไฟล์ คำสั่งเหล่านี้จะถูกดำเนินการโดยอัตโนมัติทุกครั้งที่คุณเริ่มหรือรีสตาร์ทเซิร์ฟเวอร์ TigerVNC โปรดทราบว่าคำสั่งอาจแตกต่างกันไปขึ้นอยู่กับ DE ที่คุณติดตั้ง

#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

บันทึกไฟล์และตั้งค่าการอนุญาตที่เหมาะสมในไฟล์เพื่อให้สามารถดำเนินการได้

chmod 700 ~/.vnc/xstartup

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

นอกจากนี้ VNC ตามค่าเริ่มต้นจะใช้พอร์ต TCP 5900+N โดยที่ N คือหมายเลขที่แสดง ในกรณีนี้ :1 หมายความว่าเซิร์ฟเวอร์ VNC จะทำงานบนหมายเลขพอร์ตการแสดงผล 5901

vncserver :1 -localhost -geometry 1024x768 -depth 32

หากต้องการแสดงรายการเซสชันเซิร์ฟเวอร์ VNC บนระบบของคุณ ให้รันคำสั่งต่อไปนี้

vncserver -list

เมื่อเซิร์ฟเวอร์ VNC เริ่มทำงานแล้ว ให้ตรวจสอบพอร์ตที่เซิร์ฟเวอร์ทำงานอยู่ด้วยคำสั่ง netstat

netstat -tlnp

การเชื่อมต่อกับเซิร์ฟเวอร์ VNC ผ่านไคลเอนต์ VNC

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

เมื่อใช้ SSH tunneling คุณสามารถส่งต่อการรับส่งข้อมูลจากเครื่องของคุณบนพอร์ต 5901 ไปยังเซิร์ฟเวอร์ VNC บนพอร์ตเดียวกันได้อย่างปลอดภัย

บนเครื่องไคลเอนต์ Linux ให้เปิดหน้าต่างเทอร์มินัลใหม่และรันคำสั่งต่อไปนี้เพื่อสร้างอุโมงค์ SSH ไปยังเซิร์ฟเวอร์ VNC

ssh -i ~/.ssh/ubuntu18.04 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.108

ถัดไปติดตั้งไคลเอนต์ vncviewer เช่น TigerVNC Viewer ดังต่อไปนี้ (คุณสามารถติดตั้งไคลเอนต์อื่น ๆ ที่คุณเลือกได้)

sudo apt install tigervnc-viewer		#Ubuntu/Debian
sudo yum install tigervnc-viewer		#CnetOS/RHEL
sudo yum install tigervnc-viewer		#Fedora 22+
sudo zypper install tigervnc-viewer	        #OpenSUSE
sudo pacman -S tigervnc			#Arch Linux

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้รันไคลเอนต์ VNC ของคุณ ระบุที่อยู่ localhost:5901 เพื่อเชื่อมต่อเพื่อแสดง 1 ดังนี้

vncviewer localhost:5901

หรือเปิดจากเมนูระบบ ป้อนที่อยู่ด้านบน จากนั้นคลิก เชื่อมต่อ

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านเข้าสู่ระบบ VNC ที่สร้างขึ้นก่อนหน้านี้ ป้อนรหัสผ่านและคลิก ตกลง เพื่อดำเนินการต่อ

หากรหัสผ่านถูกต้อง คุณจะเข้าสู่อินเทอร์เฟซการเข้าสู่ระบบของเดสก์ท็อปของคุณ ป้อนรหัสผ่านของคุณเพื่อเข้าถึงเดสก์ท็อป

โปรดทราบ: หากคุณคำนึงถึงความปลอดภัย คุณอาจสังเกตเห็นว่าโปรแกรมดู VNC กำลังแสดง “การเชื่อมต่อไม่ได้เข้ารหัส ” แม้ว่าเราจะเปิดใช้งานแล้วก็ตาม การขุดอุโมงค์ SSH

เนื่องจากได้รับการออกแบบมาเพื่อใช้รูปแบบการรักษาความปลอดภัยเฉพาะนอกเหนือจาก SSH tunneling เมื่อพยายามตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ อย่างไรก็ตาม การเชื่อมต่อจะปลอดภัยเมื่อคุณเปิดใช้งาน SSH tunneling แล้ว

การสร้างไฟล์ Systemd Unit สำหรับเซิร์ฟเวอร์ TigerVNC

ในการจัดการเซิร์ฟเวอร์ VNC ภายใต้ systemd เช่น เริ่ม หยุด และรีสตาร์ทบริการ VNC ตามต้องการ เราจำเป็นต้องสร้างไฟล์หน่วยสำหรับเซิร์ฟเวอร์ภายใต้ /etc/systemd/system/ ไดเร็กทอรีที่มีสิทธิ์ใช้งานรูท

sudo vim /etc/systemd/system/[email 

จากนั้นเพิ่มบรรทัดต่อไปนี้ในไฟล์:

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

[Service] 
Type=simple 
User=tecmint 
PAMName=login 
PIDFile=/home/%u/.vnc/%H%i.pid 
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768 
ExecStop=/usr/bin/vncserver -kill :%i 

[Install] 
WantedBy=multi-user.target

บันทึกไฟล์และปิด

จากนั้นให้โหลดการกำหนดค่า systemd manager อีกครั้งเพื่ออ่านไฟล์หน่วยที่สร้างขึ้นใหม่ดังต่อไปนี้

sudo systemctl daemon-reload

จากนั้นเริ่มบริการ VNC เปิดใช้งานเพื่อเริ่มอัตโนมัติเมื่อบูตระบบและตรวจสอบสถานะตามที่แสดง


sudo systemctl start vncserver@1
sudo systemctl enable vncserver@1
sudo systemctl status vncserver@1

นั่นคือทั้งหมด! ในบทความนี้ เราได้อธิบายวิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ VNC บนการกระจาย Ubuntu Linux แบ่งปันคำถามหรือความคิดของคุณกับเราผ่านแบบฟอร์มคำติชมด้านล่าง