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

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


ในคู่มือนี้ เราจะอธิบายวิธีการติดตั้งและกำหนดค่า การเข้าถึงระยะไกล VNC ในเดสก์ท็อป CentOS 7/8 และ RHEL 9/8/7 แก้ไขผ่านโปรแกรม tigervnc-server เพื่อเข้าถึงเครื่องเดสก์ท็อประยะไกล

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

ไม่เหมือนกับเซิร์ฟเวอร์ VNC อื่นๆ ที่เชื่อมต่อโดยตรงกับรันไทม์เดสก์ท็อป เช่น VNC X หรือ Vino, tigervnc-vncserver ใช้กลไกที่แตกต่างกันในการกำหนดค่าเดสก์ท็อปเสมือนแบบสแตนด์อโลนสำหรับผู้ใช้แต่ละคน

ความต้องการ

  • การติดตั้ง CentOS 8 พร้อมภาพหน้าจอ
  • ขั้นตอนการติดตั้ง CentOS 7
  • วิธีติดตั้ง RHEL 9 ฟรี
  • วิธีติดตั้ง RHEL 8 ฟรี
  • ขั้นตอนการติดตั้ง RHEL 7

ขั้นตอนที่ 1: ติดตั้งและกำหนดค่า VNC บน CentOS

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

เซสชันผู้ใช้ VNC ที่เริ่มต้นแล้วสามารถเข้าถึงได้โดยผู้ใช้คนเดียวกันจากไคลเอนต์ VNC หลายตัว ในการติดตั้งเซิร์ฟเวอร์ TigerVNC ใน CentOS/RHEL ให้เปิดเซสชันเทอร์มินัลแล้วออกคำสั่ง yum ต่อไปนี้พร้อมสิทธิ์รูท

sudo yum install tigervnc-server

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

โปรดทราบว่ารหัสผ่านต้องมีความยาวอย่างน้อยหกตัวอักษร

su - your_user
vncpasswd

3. ถัดไป เพิ่มไฟล์การกำหนดค่าบริการ VNC สำหรับผู้ใช้ของคุณผ่านไฟล์การกำหนดค่า daemon ที่อยู่ในโครงสร้างไดเร็กทอรี systemd ในการคัดลอกไฟล์เทมเพลต VNC คุณต้องเรียกใช้คำสั่ง cp ต่อไปนี้ด้วยสิทธิ์รูท

หากผู้ใช้ของคุณไม่ได้รับสิทธิ์ sudo ให้สลับไปที่บัญชีรูทโดยตรงหรือรันคำสั่งจากบัญชีที่มีสิทธิ์รูท

cp /lib/systemd/system/[email  /etc/systemd/system/vncserver@:1.service

4. ในขั้นตอนถัดไป ให้แก้ไขไฟล์การกำหนดค่าเทมเพลต VNC ที่คัดลอกมาจากไดเร็กทอรี /etc/systemd/system/ และแทนที่ค่าต่อไปนี้เพื่อให้สะท้อนถึงผู้ใช้ของคุณดังที่แสดงด้านล่าง ตัวอย่าง.

ค่าของ 1 หลังเครื่องหมาย @ แสดงถึงหมายเลขที่แสดง (พอร์ต 5900+display) นอกจากนี้ สำหรับแต่ละเซิร์ฟเวอร์ VNC ที่เริ่มทำงาน พอร์ต 5900 จะเพิ่มขึ้น 1

vi /etc/systemd/system/vncserver@\:1.service

เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ vncserver@:1.service

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

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

5. หลังจากที่คุณได้ทำการเปลี่ยนแปลงที่เหมาะสมกับไฟล์บริการ VNC แล้ว ให้โหลดโปรแกรมการเริ่มต้นระบบ systemd อีกครั้งเพื่อรับไฟล์การกำหนดค่า vnc ใหม่ และเริ่มเซิร์ฟเวอร์ TigerVNC

นอกจากนี้ ให้ตรวจสอบสถานะบริการ VNC และเปิดใช้งาน VNC daemon ทั่วทั้งระบบโดยออกคำสั่งด้านล่าง

systemctl daemon-reload
systemctl start vncserver@:1
systemctl status vncserver@:1
systemctl enable vncserver@:1

6. หากต้องการแสดงรายการพอร์ตที่เปิดอยู่ในสถานะการฟังของเซิร์ฟเวอร์ VNC ให้รันคำสั่ง ss ซึ่งใช้เพื่อแสดงซ็อกเก็ตเครือข่าย เนื่องจากคุณได้เริ่มต้นเซิร์ฟเวอร์ VNC เพียงอินสแตนซ์เดียว พอร์ตแรกที่เปิดคือ 5901/TCP

ขอย้ำอีกครั้งว่า คำสั่ง ss จะต้องดำเนินการด้วยสิทธิ์ root ในกรณีที่คุณเริ่มอินสแตนซ์ VNC อื่นๆ พร้อมกันสำหรับผู้ใช้ที่แตกต่างกัน ค่าพอร์ตจะเป็น 5902 สำหรับอินสแตนซ์ที่สอง 5903 สำหรับอินสแตนซ์ที่สาม และต่อๆ ไป พอร์ต 6000+ ใช้สำหรับอนุญาตให้แอปพลิเคชัน X เชื่อมต่อกับเซิร์ฟเวอร์ VNC

ss -tulpn| grep vnc

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

ในกรณีที่เซิร์ฟเวอร์ VNC เริ่มทำงานเพียงอินสแตนซ์เดียว คุณจะต้องเปิดพอร์ต VNC ที่จัดสรรพอร์ตแรกเท่านั้น: 5901/TCP โดยการออกคำสั่งด้านล่างเพื่อใช้การกำหนดค่าไฟร์วอลล์ในขณะรันไทม์

firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent

ขั้นตอนที่ 2: การเชื่อมต่อกับ CentOS Desktop ผ่านไคลเอนต์ VNC

8. เนื่องจากเป็นโปรโตคอลที่ไม่ขึ้นอยู่กับแพลตฟอร์ม การเชื่อมต่อ Graphical User Interface VNC ระยะไกลจึงสามารถทำได้จากระบบปฏิบัติการเกือบทุกระบบที่มี GUI และไคลเอนต์ VNC เฉพาะทาง

ไคลเอนต์ VNC ยอดนิยมที่ใช้ในระบบปฏิบัติการ ที่ใช้ Microsoft ซึ่งสามารถใช้งานร่วมกับเซิร์ฟเวอร์ Linux TigerVNC ได้อย่างสมบูรณ์คือ RealVNC VNC Viewer

หากต้องการเชื่อมต่อระยะไกลกับ CentOS Desktop จาก Microsoft OS ผ่านโปรโตคอล VNC ให้เปิดโปรแกรม VNC Viewer เพิ่มที่อยู่ IP และหมายเลขพอร์ตของเซิร์ฟเวอร์ CentOS VNC และ กดปุ่ม [enter]

หลังจากสร้างการเชื่อมต่อ VNC แล้ว คำเตือนว่าการเชื่อมต่อไม่ได้เข้ารหัสควรแสดงบนหน้าจอของคุณดังที่แสดงในภาพหน้าจอด้านล่าง

9. เพื่อหลีกเลี่ยงคำเตือน ให้กดปุ่ม ดำเนินการต่อ เพิ่มการตั้งค่ารหัสผ่านสำหรับเซิร์ฟเวอร์ VNC ที่จุดที่ 2 และคุณควรเชื่อมต่อกับ CentOS Desktop จากระยะไกลด้วย ผู้ใช้กำหนดค่าให้เรียกใช้อินสแตนซ์เซิร์ฟเวอร์ VNC

10. ในกรณีที่ข้อความการตรวจสอบสิทธิ์ใหม่ปรากฏขึ้นบนหน้าจอของคุณและผู้ใช้ของคุณไม่มีสิทธิ์รูท เพียงกดปุ่ม ยกเลิก เพื่อดำเนินการต่อไปยัง CentOS เดสก์ท็อป ดังที่แสดงในภาพหน้าจอด้านล่าง

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

11. ในการเชื่อมต่อระยะไกลกับ CentOS Desktop ผ่านโปรโตคอล VNC จาก CentOS Desktop อื่นๆ ขั้นแรกตรวจสอบให้แน่ใจว่าแพ็คเกจ vinagre ได้รับการติดตั้งบนระบบของคุณโดยออกคำสั่งด้านล่าง

sudo yum install vinagre

12. หากต้องการเปิดยูทิลิตี้ vinagre ให้ไปที่ แอปพลิเคชัน -> ยูทิลิตี้ -> โปรแกรมดูเดสก์ท็อประยะไกล ดังที่แสดงในภาพหน้าจอด้านล่าง

13. หากต้องการเชื่อมต่อกับ CentOS Desktop จากระยะไกล ให้กดปุ่ม เชื่อมต่อ เลือกโปรโตคอล VNC จากรายการและเพิ่ม ที่อยู่ IP และพอร์ต (หมายเลข 5900+จอแสดงผล) ของเซิร์ฟเวอร์ VNC ระยะไกล นอกจากนี้ ให้ระบุการตั้งค่ารหัสผ่านสำหรับผู้ใช้ VNC ดังที่แสดงในภาพหน้าจอต่อไปนี้

14. ไคลเอนต์ VNC ยอดนิยมอีกตัวหนึ่งสำหรับแพลตฟอร์มที่ใช้ Linux คือ Remmina ซึ่งเป็นไคลเอนต์เดสก์ท็อประยะไกลที่ใช้โดยเฉพาะในการกระจายแบบ Debian ซึ่งเรียกใช้สภาพแวดล้อมเดสก์ท็อป GNOME

หากต้องการติดตั้งไคลเอ็นต์ Remmina Remote Desktop ใน distros ที่ใช้ Debian ให้ใช้คำสั่งต่อไปนี้

sudo apt-get install remmina

ขั้นตอนที่ 3: กำหนดค่าหลายเซสชัน VNC บน CentOS

15. ในกรณีที่คุณต้องการเรียกใช้เซสชัน VNC แบบขนานใหม่ภายใต้ผู้ใช้คนเดียวกัน ให้เปิดคอนโซล Terminal เข้าสู่ระบบด้วยผู้ใช้ที่คุณต้องการเริ่มเซสชัน VNC ใหม่ และดำเนินการคำสั่งด้านล่าง

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

vncserver

16. เซสชัน VNC ใหม่จะเปิดพอร์ตที่ใช้ VNC ถัดไปที่มีอยู่ (แสดง 5900+3 ในตัวอย่างนี้) หากต้องการแสดงพอร์ตที่เปิดอยู่ ให้ดำเนินการ คำสั่ง ss โดยไม่มีสิทธิ์ root ดังที่แสดงในข้อความที่ตัดตอนมาด้านล่าง โดยจะแสดงเฉพาะเซสชัน VNC ที่เริ่มต้นแล้วซึ่งผู้ใช้ของคุณเป็นเจ้าของ

ss -tlpn| grep Xvnc

17. ตอนนี้ ให้เชื่อมต่อ CentOS Desktop จากระยะไกลโดยใช้เซสชัน VNC ใหม่นี้ และระบุ IP:พอร์ตรวม (192.168.1.23:5903) ในไคลเอนต์ VNC ดังที่แสดงในภาพด้านล่าง

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

su - your_user
killall Xvnc

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