DeskVNCServer - คู่มือ

เรียกใช้เซิร์ฟเวอร์ VNC มาตรฐานบน Mac ของคุณ แล้วแชร์หน้าจอ คลิปบอร์ด ไฟล์ และแม้แต่ IME ด้วย QuickRemote — ทั้งหมดบนเครือข่ายภายในของคุณโดยไม่ผ่านคลาวด์


เริ่มต้นใช้งาน

1. ตั้งรหัสผ่าน

เปิดการตั้งค่า (ไอคอนเฟืองในแถบเครื่องมือด้านล่าง) แล้วกรอก รหัสผ่าน VNCไคลเอ็นต์ VNC มาตรฐานใช้การท้าทาย RFB DES ซึ่งรองรับเพียง 8 ไบต์แรกที่เข้ากันได้กับ ASCII — เลือกรหัสผ่านที่ยาวไม่เกิน 8 อักขระ

เกี่ยวกับรหัสผ่านแบบสั้น: นี่เป็นข้อจำกัดของโปรโตคอล RFB เอง ไม่ใช่ DeskVNCServer หากต้องการการยืนยันตัวตนที่เข้มแข็งกว่า ให้จำกัดเซิร์ฟเวอร์ไว้ในเครือข่ายส่วนตัว หรือใช้ขั้นตอน QREX (Bearer token หลังจับคู่ PIN) และปิดรหัสผ่าน VNC

2. เริ่มเซิร์ฟเวอร์

  1. ในหน้าต่างหลัก ให้คลิก เริ่มตัวบ่งชี้สถานะจะเปลี่ยนเป็น กำลังทำงาน.
  2. ตัวรับฟังสี่รายการเริ่มทำงานพร้อมกัน: VNC 5900, การควบคุม QREX 5911, สื่อ QREX 4010และ File API 8766.
  3. คลิก คัดลอกข้อมูล เพื่อคัดลอกข้อความบรรทัดเดียวที่มีโฮสต์ พอร์ต และ PIN ปัจจุบันไปยังคลิปบอร์ด

3. เชื่อมต่อไคลเอ็นต์

สำหรับโปรแกรมดู VNC มาตรฐาน (macOS Screen Sharing, RealVNC, TightVNC, แอป VNC บนมือถือ):

  1. เปิดโปรแกรมดูแล้วป้อน vnc://<your-mac-ip>:5900 เป็นที่อยู่
  2. พิมพ์รหัสผ่าน VNC ที่คุณตั้งไว้ในขั้นตอนที่ 1
  3. ควบคุม Mac ได้ทันที — แป้นพิมพ์ เมาส์ คัดลอก/วางผ่าน RFB

สำหรับแอป QuickRemote:

  1. เปิด QuickRemote บนโทรศัพท์หรือแท็บเล็ต เลือก เพิ่ม Mac
  2. ป้อน PIN สำหรับจับคู่ 6 หลักที่แสดงโดย DeskVNCServer (หรือสแกน QR code หากบิลด์ QuickRemote ของคุณรองรับ)
  3. QuickRemote เก็บ Bearer token ที่ส่งกลับและปลดล็อกฟีเจอร์เพิ่มเติม — IME เสียง การซิงค์คลิปบอร์ด และการถ่ายโอนไฟล์

ภาพรวมของอินเทอร์เฟซ

แถวสถานะ

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

ปุ่มการทำงาน

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

แผงการเชื่อมต่อ

แสดงโฮสต์ที่ผูก พอร์ต Server ID ปัจจุบัน และ PIN จับคู่ที่กำลังใช้งาน ข้อความจะรีเฟรชอัตโนมัติเมื่อการตั้งค่าเปลี่ยน

แผง API ของ QuickRemote

ข้อมูลอ้างอิงอย่างย่อสำหรับโปรโตคอลที่เซิร์ฟเวอร์รองรับ แสดงเวอร์ชัน RFB ที่รองรับ รูปแบบปลายทาง QREX และชุดคำสั่ง IME เพื่อให้ QuickRemote (หรือไคลเอ็นต์ของคุณเอง) ทราบสิ่งที่ใช้ได้


โปรโตคอลและพอร์ต

บริการพอร์ตเริ่มต้นโปรโตคอลใช้โดย
VNC / RFBTCP 5900RFB 3.8 / 3.7 / 3.3ไคลเอ็นต์ VNC มาตรฐานใดก็ได้
การควบคุม QREXTCP 5911HTTP JSON RPC + WebSocketQuickRemote และไคลเอ็นต์ QREX อื่น ๆ
สื่อ QREXUDP 4010แพ็กเก็ตที่เข้ากันได้กับ QuickRemoteข้อความ IME การสตรีมเสียง
File APITCP 8766HTTP ที่เข้ากันได้กับ QuickRemoteเรียกดูและถ่ายโอนไฟล์

การยืนยันตัวตน

  • ไคลเอ็นต์ VNC — รหัสผ่าน RFB DES (8 ไบต์แรกที่เข้ากันได้กับ ASCII ของรหัสผ่านที่กำหนดค่าไว้)
  • ไคลเอ็นต์ QREX — การแลกเปลี่ยน PIN 6 หลักเริ่มต้นที่ POST /qr/v1/pair ส่งกลับ Bearer token ทุกการเรียก QREX HTTP และเฟรม WebSocket หลังจากนั้นต้องมี Authorization: Bearer <token>.
  • หากรหัสผ่าน VNC ว่าง เซิร์ฟเวอร์จะประกาศโหมดไม่ยืนยันตัวตน RFB มาตรฐาน เหมาะสำหรับส่วน LAN ที่เชื่อถือได้เท่านั้น

ข้อมูลอ้างอิงปลายทาง QREX ฉบับย่อ

GET  /qr/v1/capabilities    # public, returns supported features
POST /qr/v1/pair            # public, exchange PIN for Bearer token
GET  /qr/v1/ws              # WebSocket, auth required
POST /qr/v1/ime/get         # auth required, query active IME
POST /qr/v1/ime/list        # auth required, list available IMEs
POST /qr/v1/ime/set         # auth required, switch IME
POST /qr/v1/ime/toggle      # auth required, toggle IME on/off
POST /qr/v1/ime/commit      # auth required, commit a text string

การตั้งค่า

การตั้งค่าค่าเริ่มต้นคำอธิบาย
โฮสต์ที่ผูก0.0.0.0อินเทอร์เฟซที่จะรับฟัง ตั้งค่าเป็น 127.0.0.1 สำหรับ localhost เท่านั้น
พอร์ต VNC5900พอร์ต TCP สำหรับตัวรับฟัง RFB มาตรฐาน
พอร์ตควบคุม QREX5911พอร์ต TCP สำหรับการรับส่ง QREX ผ่าน HTTP + WebSocket
พอร์ต UDP สื่อ QREX4010พอร์ต UDP สำหรับแพ็กเก็ตช่องทางเสริมของ IME และเสียง
พอร์ต File API ของ QuickRemote8766พอร์ต TCP สำหรับ API การเรียกดูและถ่ายโอนไฟล์
รหัสผ่าน VNC(ว่าง)สูงสุด 8 ไบต์ที่เข้ากันได้กับ ASCII ว่างหมายถึงไม่มีการยืนยันตัวตนในช่อง VNC
โทเค็นผู้ถือ QREX(สร้างแล้ว)โทเค็นที่ใช้งานซึ่งออกระหว่างการจับคู่ สร้างใหม่ได้ด้วยการจับคู่ใหม่หรือแก้ไขช่องนี้
PIN จับคู่(สร้างแล้ว)PIN 6 หลักที่แสดงให้ QuickRemote ระหว่างการจับคู่ จะหมุนเปลี่ยนเมื่อคุณสร้างใหม่
Server ID ถาวร(สร้างแล้ว)ตัวระบุระยะยาวที่ QuickRemote ใช้จดจำ Mac เครื่องนี้
เริ่มเซิร์ฟเวอร์โดยอัตโนมัติปิดเปิดตัวรับฟังเมื่อเปิดแอป
อนุญาตแป้นพิมพ์และเมาส์ระยะไกลเปิดปิดเพื่อทำให้เซสชันดูได้อย่างเดียว
เปิดใช้สะพาน IMEเปิดอนุญาตให้ไคลเอ็นต์ QREX สอบถามและควบคุมวิธีป้อนข้อมูลของ macOS
เปิดใช้ API เสียงปิดอนุญาตการสตรีมเสียง Opus ผ่าน UDP สื่อ QREX ปิดเป็นค่าเริ่มต้นเพื่อประหยัด CPU
เปิดใช้การซิงค์คลิปบอร์ดเปิดสะท้อนเนื้อหาคลิปบอร์ดระหว่าง Mac และไคลเอ็นต์ระยะไกล
เปิดใช้การถ่ายโอนไฟล์เปิดอนุญาตให้ QuickRemote แสดงรายการและอ่านไฟล์ อ่านอย่างเดียวเว้นแต่จะเปิดใช้การเปลี่ยนแปลงด้วย
เปิดใช้การเปลี่ยนแปลงไฟล์ปิดอนุญาตการอัปโหลด เปลี่ยนชื่อ และลบ ปิดเป็นค่าเริ่มต้น — เปิดเฉพาะสำหรับไคลเอ็นต์ที่เชื่อถือได้
ความกว้างเฟรมสูงสุด1440จำกัดความกว้างของการจับภาพหน้าจอ ค่าที่ต่ำกว่าจะลดแบนด์วิดท์
ความสูงเฟรมสูงสุด900จำกัดความสูงของการจับภาพหน้าจอ
อัตราเฟรม12จำนวนเฟรมต่อวินาทีเป้าหมายที่ส่งให้ไคลเอ็นต์

ตัวอย่างฝั่งไคลเอ็นต์

macOS Screen Sharing

  1. Finder → Go → Connect to Server
  2. พิมพ์ vnc://<your-mac-ip>:5900
  3. ป้อนรหัสผ่าน VNC

cURL — ค้นหาความสามารถ

curl http://<your-mac-ip>:5911/qr/v1/capabilities

cURL — จับคู่และเรียกใช้สะพาน IME

# 1. Exchange the PIN for a Bearer token
TOKEN=$(curl -s http://<your-mac-ip>:5911/qr/v1/pair \
  -H "Content-Type: application/json" \
  -d '{"pin":"123456"}' | jq -r .token)

# 2. Commit text via the IME bridge
curl http://<your-mac-ip>:5911/qr/v1/ime/commit \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello from remote"}'

เคล็ดลับ

  • ลดอัตราเฟรมและขนาดเฟรมสูงสุดเมื่อคุณใช้ Wi-Fi ที่ช้าหรือกำหนดเส้นทางการเชื่อมต่อผ่าน VPN
  • จับคู่อุปกรณ์แต่ละเครื่องเพียงครั้งเดียว หลังจากแลกเปลี่ยน PIN ครั้งแรก Bearer token จะคงอยู่แม้รีบูต ดังนั้น QuickRemote จะเชื่อมต่อใหม่อย่างเงียบ ๆ
  • ใช้ คัดลอกข้อมูล เป็นวิธีรวดเร็วในการส่งรายละเอียดการเชื่อมต่อผ่านแชตหรืออีเมล — มีทุกสิ่งที่ไคลเอ็นต์ต้องใช้
  • เก็บ เปิดใช้การเปลี่ยนแปลงไฟล์ ไว้เป็นปิด เว้นแต่คุณจำเป็นต้องอัปโหลดจริง ๆ โหมดอ่านอย่างเดียวเพียงพอสำหรับการเรียกดูภาพหน้าจอ โน้ต หรือไฟล์ดาวน์โหลด
  • ปิดใช้งาน audio API เมื่อไม่ได้ใช้ codec ที่ไม่ได้ใช้งานยังใช้ CPU เล็กน้อยในเส้นทางการเข้ารหัส

การแก้ปัญหา

เซิร์ฟเวอร์เริ่มทำงานไม่ได้

  • เซิร์ฟเวอร์ VNC อื่น (เช่น macOS Screen Sharing) อาจใช้พอร์ต 5900 อยู่แล้ว ให้หยุดจาก System Settings → General → Sharing หรือเปลี่ยนพอร์ตในการตั้งค่าของ DeskVNCServer
  • พอร์ต 5911 / 4010 / 8766 ต้องว่างทั้งหมด ตรวจสอบด้วย lsof -i :5911 และคำสั่งอื่นที่คล้ายกัน

ไคลเอ็นต์ VNC ยืนยันตัวตนไม่สำเร็จ

  • ตรวจสอบให้แน่ใจว่ารหัสผ่านมีขนาดไม่เกิน 8 ไบต์ที่เข้ากันได้กับ ASCII อักขระหลายไบต์หรือสตริงที่ยาวกว่าจะถูกตัดทอนอย่างเงียบ ๆ โดยการยืนยันตัวตน RFB DES
  • หากคุณตั้งใจไม่ใช้รหัสผ่าน ให้เว้นช่องว่างไว้และเชื่อมต่อด้วยโปรแกรมดูที่รองรับ VNC no-auth

QuickRemote จับคู่ไม่ได้

  • ยืนยันว่าโทรศัพท์หรือแท็บเล็ตอยู่ใน Wi-Fi เดียวกับ Mac
  • เปิดแผงการเชื่อมต่อแล้วอ่าน PIN อีกครั้ง สามารถสร้าง PIN ใหม่ได้จาก Settings
  • ตรวจสอบการตั้งค่าไฟร์วอลล์ macOS — ต้องอนุญาตการเชื่อมต่อขาเข้าบนพอร์ต QREX

การควบคุมระยะไกลตอบสนองช้า

  • ลดอัตราเฟรมและขนาดเฟรมสูงสุดใน Settings
  • ปิดใช้งานคุณลักษณะที่ไม่ได้ใช้ (audio, clipboard, IME) เพื่อคืนทรัพยากร CPU

ไม่สามารถโอนไฟล์ได้

  • ยืนยันว่า เปิดใช้การถ่ายโอนไฟล์ เปิดอยู่ รายการแบบอ่านอย่างเดียวทำงานได้โดยไม่ต้องมี เปิดใช้การเปลี่ยนแปลงไฟล์.
  • หากอัปโหลดไม่สำเร็จ ให้เปิดใช้งาน เปิดใช้การเปลี่ยนแปลงไฟล์ด้วย มิฉะนั้น file API จะตอบสนองเฉพาะคำขออ่าน

ความเป็นส่วนตัว

  • ทุกเซสชันทำงานโดยตรงระหว่างไคลเอ็นต์และ Mac ของคุณ ไม่มี cloud relay, telemetry หรือ analytics
  • รหัสผ่าน VNC, QREX Bearer token, PIN สำหรับจับคู่ และ Server ID แบบคงที่ จะถูกเก็บไว้เฉพาะในการตั้งค่าแอปภายในเครื่อง
  • การแก้ไขไฟล์ถูกปิดไว้โดยค่าเริ่มต้น ไคลเอ็นต์ระยะไกลจะอ่านได้เท่านั้นจนกว่าคุณจะอนุญาตสิทธิ์เขียนอย่างชัดเจน
  • ปิดใช้งานส่วนขยายใดก็ได้ (audio, clipboard, file transfer, IME, remote input) ได้ทุกเมื่อเพื่อเพิกถอนความสามารถนั้นทันที
  • หากต้องการให้เซิร์ฟเวอร์อยู่ภายใน Mac ของคุณ ให้ตั้ง bind host เป็น 127.0.0.1.