← กลับไปยังบทความทั้งหมด

VNC คืออะไร? ทำความรู้จักระบบควบคุมคอมพิวเตอร์ระยะไกล

สรุปใจความสำคัญ

  • VNC ใช้โปรโตคอล RFB (Remote Frame Buffer) ในการควบคุมคอมพิวเตอร์ระยะไกล
  • เป็นระบบที่ทำงานข้ามแพลตฟอร์ม สามารถใช้งานได้กับหลายระบบปฏิบัติการ
  • ซอร์สโค้ดดั้งเดิมเป็นโอเพนซอร์สภายใต้สัญญาอนุญาต GNU GPL

VNC (Virtual Network Computing) คือระบบการแชร์หน้าจอเดสก์ท็อปแบบกราฟิกที่ช่วยให้ผู้ใช้สามารถควบคุมคอมพิวเตอร์เครื่องหนึ่งจากระยะไกลผ่านเครือข่าย โดยใช้โปรโตคอล Remote Frame Buffer (RFB) ในการส่งข้อมูลภาพหน้าจอและการรับส่งข้อมูลการกดแป้นพิมพ์และเมาส์จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง

แผนผังการทำงานของ VNC
การทำงานของ VNC ในการเชื่อมต่อระหว่างเครื่อง Client และ Server

ประโยชน์และการใช้งาน VNC

เทคโนโลยี VNC ถูกนำมาใช้อย่างแพร่หลายในหลายด้าน เช่น:

  • การสนับสนุนทางเทคนิคระยะไกล: เจ้าหน้าที่ไอทีสามารถเข้าถึงเครื่องคอมพิวเตอร์ของผู้ใช้เพื่อแก้ไขปัญหาได้โดยไม่ต้องเดินทางไปยังหน้าเครื่อง
  • การเข้าถึงไฟล์และโปรแกรม: ผู้ใช้สามารถเข้าถึงไฟล์งานหรือโปรแกรมที่ติดตั้งไว้ในคอมพิวเตอร์ที่ทำงานจากที่บ้านได้อย่างสะดวก
  • การทำงานข้ามแพลตฟอร์ม: VNC มีความสามารถในการทำงานร่วมกันได้หลายระบบปฏิบัติการ (Platform-independent) ทำให้สามารถใช้เครื่อง Mac ควบคุมเครื่อง Windows หรือ Linux ได้

ประวัติความเป็นมา

VNC ถูกพัฒนาขึ้นครั้งแรกที่ Olivetti & Oracle Research Lab (ORL) ในเมืองเคมบริดจ์ สหราชอาณาจักร โดยทีมพัฒนาที่นำโดย Tristan Richardson และ Andy Harter ต่อมาทีมพัฒนาได้ก่อตั้งบริษัท RealVNC Ltd เพื่อพัฒนาซอฟต์แวร์ VNC ทั้งในรูปแบบโอเพนซอร์สและเชิงพาณิชย์

ซอร์สโค้ดดั้งเดิมของ VNC และเวอร์ชันที่พัฒนาต่อยอดมามากมายถูกเผยแพร่ภายใต้สัญญาอนุญาต GNU General Public License (GPL) ทำให้เกิดการพัฒนาเวอร์ชันต่างๆ ที่มีความสามารถเพิ่มเติม เช่น การโอนย้ายไฟล์ หรือการปรับแต่งให้เหมาะสมกับระบบปฏิบัติการ Windows โดยเฉพาะ

หลักการทำงานและการออกแบบ

โครงสร้าง Client-Server

การทำงานของ VNC แบ่งออกเป็นสองส่วนหลัก:

  1. VNC Server: โปรแกรมที่ติดตั้งบนเครื่องที่ต้องการแชร์หน้าจอ (เครื่องปลายทาง) ซึ่งอาจจะเป็นเครื่องที่มีหน้าจอจริงหรือเครื่องแบบ "headless" (ไม่มีหน้าจอ) ก็ได้
  2. VNC Client (หรือ Viewer): โปรแกรมที่ติดตั้งบนเครื่องที่ใช้ควบคุม (เครื่องต้นทาง) ซึ่งจะแสดงผลภาพหน้าจอที่ได้รับจาก Server และส่งคำสั่งการควบคุมกลับไป

โปรโตคอล RFB และการส่งข้อมูล

VNC ใช้โปรโตคอล RFB (Remote Frame Buffer) ซึ่งมีหลักการทำงานที่เรียบง่าย โดย Server จะส่งข้อมูลภาพเป็นรูปสี่เหลี่ยมผืนผ้าขนาดเล็กของ Framebuffer ไปยัง Client และรับข้อความเหตุการณ์ (Event messages) จาก Client กลับมา

เพื่อลดการใช้แบนด์วิดท์ (Bandwidth) VNC จึงมีวิธีการเข้ารหัส (Encoding) หลายรูปแบบ เช่น Raw encoding ซึ่งจะส่งข้อมูลพิกเซลตามลำดับ และหลังจากส่งหน้าจอเต็มครั้งแรกแล้ว จะส่งเฉพาะส่วนของหน้าจอที่มีการเปลี่ยนแปลงเท่านั้น วิธีนี้จะช่วยลดการส่งข้อมูลได้อย่างมากหากมีการเปลี่ยนแปลงเพียงเล็กน้อย เช่น การเคลื่อนที่ของเมาส์หรือการพิมพ์ข้อความ

พอร์ตและการเชื่อมต่อ

โดยปกติ VNC จะใช้พอร์ต TCP 5900+N (โดยที่ N คือหมายเลขหน้าจอ) และบางเวอร์ชันอาจมี HTTP Server บนพอร์ต 5800+N เพื่อให้สามารถเข้าถึงผ่านเว็บเบราว์เซอร์ที่รองรับ Java หรือ HTML5 ได้

คำถามที่พบบ่อย

VNC แตกต่างจาก Remote Desktop Protocol (RDP) อย่างไร?

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

VNC ปลอดภัยหรือไม่?

โดยพื้นฐานแล้ว VNC อาจไม่มีการเข้ารหัสข้อมูลที่เข้มงวดในทุกเวอร์ชัน ดังนั้นแนะนำให้ใช้งานผ่าน VPN หรือ SSH Tunneling เพื่อความปลอดภัยในการส่งข้อมูลผ่านอินเทอร์เน็ต

สามารถใช้ VNC ควบคุมคอมพิวเตอร์หลายเครื่องพร้อมกันได้หรือไม่?

ใช่ VNC Server สามารถรองรับการเชื่อมต่อจาก Client หลายรายในเวลาเดียวกันได้ ขึ้นอยู่กับการตั้งค่าของเวอร์ชันที่ใช้งาน