Android

วิธีการติดตั้งและกำหนดค่า vnc บน centos 7

VNC Connect has instant support

VNC Connect has instant support

สารบัญ:

Anonim

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

Virtual Network Computing (VNC) เป็นระบบแชร์เดสก์ท็อปกราฟิกที่ให้คุณใช้แป้นพิมพ์และเมาส์เพื่อควบคุมคอมพิวเตอร์เครื่องอื่นจากระยะไกล

ข้อกำหนดเบื้องต้น

ก่อนทำการสอนต่อให้แน่ใจว่าคุณได้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo เราจะถือว่าคุณเข้าสู่ระบบในฐานะผู้ใช้ชื่อ linuxize

การติดตั้ง Xfce Desktop Environment

การติดตั้งเซิร์ฟเวอร์ CentOS มักไม่ได้ติดตั้งสภาพแวดล้อมเดสก์ท็อปดังนั้นเราจะเริ่มด้วยการติดตั้งสภาพแวดล้อมเดสก์ท็อปที่มีน้ำหนักเบา

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

แพ็คเกจ Xfce มีอยู่ในที่เก็บ EPEL หากคุณไม่ได้เปิดใช้งานที่เก็บ EPEL บนเซิร์ฟเวอร์คุณสามารถทำได้โดยพิมพ์:

sudo yum install epel-release

เมื่อเพิ่มที่เก็บแล้วให้ติดตั้ง Xfce บน CentOS ของคุณด้วย:

sudo yum groupinstall xfce

ขึ้นอยู่กับระบบของคุณการดาวน์โหลดและติดตั้งแพ็คเกจ Xfce และการอ้างอิงอาจใช้เวลาสักครู่

การติดตั้งเซิร์ฟเวอร์ VNC

เราจะใช้ TigerVNC เป็นเซิร์ฟเวอร์ VNC ที่เราเลือก TigerVNC เป็นเซิร์ฟเวอร์ VNC แบบโอเพ่นซอร์สประสิทธิภาพสูงที่ได้รับการบำรุงรักษา

พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง TigerVNC บนเซิร์ฟเวอร์ CentOS ของคุณ:

yum install tigervnc-server

หลังจากติดตั้งเซิร์ฟเวอร์ VNC แล้วขั้นตอนต่อไปคือการเรียกใช้คำสั่ง vncserver ซึ่งจะสร้างการกำหนดค่าเริ่มต้นและตั้งค่ารหัสผ่าน ห้ามใช้ sudo เมื่อรันคำสั่งต่อไปนี้:

vncserver

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

You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/linuxize/.Xauthority does not exist New 'server2.linuxize.com:1 (linuxize)' desktop at:1 on machine server2.linuxize.com Starting applications specified in /etc/X11/Xvnc-session Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

ครั้งแรกที่รันคำสั่ง vncserver คำสั่งจะสร้างและเก็บไฟล์รหัสผ่านในไดเรกทอรี ~/.vnc ซึ่งจะถูกสร้างขึ้นหากไม่มีอยู่

หมายเหตุ :1 หลังชื่อโฮสต์ในเอาต์พุตด้านบน สิ่งนี้ระบุหมายเลขพอร์ตการแสดงผลที่เซิร์ฟเวอร์ vnc กำลังทำงาน ในกรณีของเราเซิร์ฟเวอร์กำลังทำงานบนพอร์ต TCP 5901 (5900 + 1) หากคุณสร้างอินสแตนซ์ที่สองด้วย vncserver มันจะทำงานบนพอร์ตว่างถัดไปเช่น :2 ซึ่งหมายความว่าเซิร์ฟเวอร์กำลังทำงานบนพอร์ต 5902 (5900 + 2)

สิ่งสำคัญที่ต้องจำคือเมื่อทำงานกับเซิร์ฟเวอร์ VNC :X เป็นพอร์ตจอแสดงผลที่อ้างถึง 5900+X

ก่อนดำเนินการต่อในขั้นตอนถัดไปอันดับแรกให้หยุดทำงานอินสแตนซ์ VNC โดยใช้คำสั่ง vncserver พร้อมตัวเลือก -kill และหมายเลขเซิร์ฟเวอร์เป็นอาร์กิวเมนต์ ในกรณีของเราเซิร์ฟเวอร์ทำงานในพอร์ต 5901 ( :1 ) ดังนั้นเราจะหยุดด้วย:

vncserver -kill:1

Killing Xvnc process ID 2432

การกำหนดค่าเซิร์ฟเวอร์ VNC

ตอนนี้ทั้ง Xfce และ TigerVNC ได้รับการติดตั้งบนเซิร์ฟเวอร์ CentOS ของเราขั้นตอนต่อไปคือการกำหนดค่า TigerVNC ให้ใช้ Xfce โดยให้เปิดไฟล์ต่อไปนี้:

nano ~/.vnc/xstartup

และเปลี่ยนบรรทัดสุดท้ายจาก exec /etc/X11/xinit/xinitrc เป็น exec startxfce4 :

~ /.vnc / xstartup

#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4

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

นี่คือตัวอย่าง:

~ /.vnc / config

# securitytypes=vncauth, tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared dpi=96

การสร้างไฟล์หน่วย Systemd

เราจะสร้างไฟล์ systemd unit ซึ่งจะช่วยให้เราสามารถเริ่มหยุดและเริ่มบริการ VNC ได้อย่างง่ายดายตามต้องการเช่นเดียวกับบริการ systemd อื่น ๆ

คัดลอกไฟล์ vncserver unit ด้วยคำสั่ง cp :

sudo cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

เปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความและแทนที่ ด้วยชื่อผู้ใช้จริงของคุณ

sudo nano /etc/systemd/system/vncserver@\:1.service /etc/systemd/system/vncserver@:1.service

Description=Remote desktop service (VNC) After=syslog.target network.target Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 ||:' ExecStart=/usr/sbin/runuser -l linuxize -c "/usr/bin/vncserver %i" PIDFile=/home/linuxize/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 ||:' WantedBy=multi-user.target

บันทึกและปิดไฟล์ แจ้ง systemd ที่เราสร้างไฟล์หน่วยใหม่ด้วย:

sudo systemctl daemon-reload

ขั้นตอนต่อไปคือการเปิดใช้งานไฟล์หน่วยด้วยคำสั่งต่อไปนี้:

sudo systemctl enable vncserver@:1.service

หมายเลข 1 หลังจากเครื่องหมาย @ กำหนดพอร์ตการแสดงผลที่บริการ VNC จะทำงานในกรณีของเราซึ่งเป็นค่าเริ่มต้น 1 และเซิร์ฟเวอร์ VNC จะรับฟังพอร์ต 5901 ตามที่เราได้กล่าวถึงในส่วนก่อนหน้านี้

เริ่มบริการ VNC โดยดำเนินการ:

sudo systemctl start vncserver@:1.service

ตรวจสอบว่าบริการเริ่มต้นได้สำเร็จด้วย:

sudo systemctl status vncserver@:1.service

● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago Process: 6391 ExecStart=/usr/sbin/runuser -l linuxize -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS) Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 ||: (code=exited, status=0/SUCCESS) Main PID: 6413 (Xvnc) CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ‣ 6413 /usr/bin/Xvnc:1 -auth /home/linuxize/.Xauthority -desktop server2.linuxize.com:1 (linuxize) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/linuxize/.vnc/passwd -rfbport…

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ VNC

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

ตั้งค่า SSH Tunneling บน Linux และ macOS

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้

อย่าลืมเปลี่ยน username และ server_ip_address ด้วยชื่อผู้ใช้และที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ

ตั้งค่า SSH Tunneling บน Windows

เปิด Putty และป้อนที่อยู่ IP เซิร์ฟเวอร์ของคุณในฟิลด์ Host name or IP address

ตอนนี้คุณสามารถเริ่มโต้ตอบกับเดสก์ท็อป XFCE ระยะไกลจากเครื่องท้องถิ่นของคุณโดยใช้แป้นพิมพ์และเมาส์

ข้อสรุป

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

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

อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ

centos vnc