DeskVNCServer - คู่มือ

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


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

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

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

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

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

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

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

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

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

สำหรับแอป QuickRemote:

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

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

แถวสถานะ

องค์ประกอบคำอธิบาย
ป้ายชื่อเซิร์ฟเวอร์ระบุแผงนี้
ป้ายสถานะRunning ขณะที่ผู้รับฟังทำงานอยู่, Stopped ในกรณีอื่น

ปุ่มดำเนินการ

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

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

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

แผง QuickRemote API

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


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

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

การตรวจสอบสิทธิ์

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

การตั้งค่า

การตั้งค่าค่าเริ่มต้นคำอธิบาย
Bind host0.0.0.0อินเทอร์เฟซที่จะรับฟัง ตั้งค่าเป็น 127.0.0.1 สำหรับ localhost เท่านั้น
VNC port5900พอร์ต TCP สำหรับผู้รับฟัง RFB มาตรฐาน
QREX control port5911พอร์ต TCP สำหรับการรับส่งข้อมูล HTTP + WebSocket QREX
QREX media UDP port4010พอร์ต UDP สำหรับแพ็กเก็ตช่องด้านข้างของ IME และเสียง
QuickRemote file API port8766พอร์ต TCP สำหรับ API การเรียกดูและถ่ายโอนไฟล์
VNC password(ว่าง)สูงสุด 8 ไบต์ที่เข้ากันได้กับ ASCII ค่าว่างหมายถึง no-auth บนช่อง VNC
QREX bearer token(สร้างแล้ว)โทเค็นที่ใช้งานอยู่ซึ่งออกในการจับคู่ สร้างใหม่โดยจับคู่ใหม่หรือแก้ไขฟิลด์นี้
Pairing PIN(สร้างแล้ว)PIN 6 หลักที่แสดงให้ QuickRemote เห็นในระหว่างการจับคู่ เปลี่ยนแปลงเมื่อคุณสร้างใหม่
Stable server ID(สร้างแล้ว)ตัวระบุระยะยาวที่ QuickRemote ใช้เพื่อจดจำ Mac เครื่องนี้
Start server automaticallyOffเปิดผู้รับฟังเมื่อเปิดแอป
Allow remote keyboard and mouseOnปิดเพื่อให้เซสชันเป็นแบบดูอย่างเดียว
Enable IME bridgeOnอนุญาตให้ไคลเอนต์ QREX สอบถามและควบคุมวิธีป้อนข้อมูลของ macOS
Enable audio APIOffอนุญาตการสตรีมเสียง Opus ผ่าน QREX media UDP ปิดเป็นค่าเริ่มต้นเพื่อประหยัด CPU
Enable clipboard syncOnสะท้อนเนื้อหาคลิปบอร์ดระหว่าง Mac และไคลเอนต์ระยะไกล
Enable file transferOnอนุญาตให้ QuickRemote แสดงรายการและอ่านไฟล์ อ่านอย่างเดียวเว้นแต่จะเปิดใช้งานการเปลี่ยนแปลงด้วย
Enable file mutationsOffอนุญาตการอัปโหลด เปลี่ยนชื่อ และลบ ปิดเป็นค่าเริ่มต้น — เปิดเฉพาะสำหรับไคลเอนต์ที่เชื่อถือได้เท่านั้น
Max frame width1440เพดานความกว้างการจับภาพหน้าจอ ค่าที่ต่ำกว่าจะลดแบนด์วิดท์
Max frame height900เพดานความสูงการจับภาพหน้าจอ
Frame rate12จำนวนเฟรมต่อวินาทีเป้าหมายที่ส่งไปยังไคลเอนต์

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

macOS Screen Sharing

  1. Finder → Go → Connect to Server
  2. พิมพ์ vnc://<your-mac-ip>:5900
  3. ป้อน VNC password

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

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

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

# 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 จะยังคงอยู่หลังการรีบูต ดังนั้น QuickRemote จะเชื่อมต่อใหม่อย่างเงียบ ๆ
  • ใช้ Copy Info เป็นวิธีด่วนในการส่งรายละเอียดการเชื่อมต่อผ่านแชทหรืออีเมล — มันรวมทุกอย่างที่ไคลเอนต์ต้องการ
  • เก็บ Enable file mutations ไว้ที่ปิดเว้นแต่คุณต้องการการอัปโหลดจริง ๆ โหมดอ่านอย่างเดียวเพียงพอสำหรับการเรียกดูภาพหน้าจอ บันทึก หรือดาวน์โหลด
  • ปิดใช้งาน Audio API เมื่อคุณไม่ได้ใช้งาน โคเดกที่ไม่ได้ใช้งานยังคงใช้ CPU เล็กน้อยในเส้นทางเข้ารหัส

การแก้ไขปัญหา

เซิร์ฟเวอร์ไม่เริ่ม

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

ไคลเอนต์ VNC ตรวจสอบสิทธิ์ไม่ผ่าน

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

QuickRemote ไม่สามารถจับคู่ได้

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

การควบคุมระยะไกลรู้สึกหน่วง

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

ไฟล์ไม่ถ่ายโอน

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

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

  • เซสชันทั้งหมดทำงานโดยตรงระหว่างไคลเอนต์และ Mac ของคุณ ไม่มีตัวรีเลย์คลาวด์ ไม่มีโทรมาตร ไม่มีการวิเคราะห์
  • VNC password, โทเค็น QREX Bearer, PIN การจับคู่ และ Stable Server ID จะถูกจัดเก็บไว้ในการตั้งค่าแอปในเครื่องเท่านั้น
  • การเปลี่ยนแปลงไฟล์ปิดเป็นค่าเริ่มต้น ไคลเอนต์ระยะไกลสามารถอ่านได้เท่านั้นจนกว่าคุณจะให้สิทธิ์การเขียนอย่างชัดเจน
  • ปิดใช้งานส่วนขยายใด ๆ (เสียง คลิปบอร์ด การถ่ายโอนไฟล์ IME การป้อนข้อมูลระยะไกล) ได้ตลอดเวลาเพื่อเพิกถอนความสามารถนั้นทันที
  • หากคุณต้องการให้เซิร์ฟเวอร์อยู่ภายในเครื่อง Mac ของคุณ ให้ตั้งค่าโฮสต์ที่ผูกเป็น 127.0.0.1