DeskVNCServer - Hướng dẫn

Chạy máy chủ VNC tiêu chuẩn trên máy Mac và chia sẻ màn hình, bảng nhớ tạm, tệp, thậm chí cả IME với QuickRemote — tất cả đều qua mạng cục bộ, không cần chuyển tiếp qua đám mây.


Bắt đầu

1. Đặt mật khẩu

Mở Cài đặt (biểu tượng bánh răng trên thanh công cụ phía dưới) và điền Mật khẩu VNC. Ứng dụng khách VNC tiêu chuẩn dùng thử thách RFB DES, chỉ nhận 8 byte tương thích ASCII đầu tiên — hãy chọn mật khẩu không dài quá 8 ký tự.

Về mật khẩu ngắn: Đây là giới hạn của chính giao thức RFB, không phải DeskVNCServer. Nếu cần xác thực mạnh hơn, hãy giới hạn máy chủ trong mạng riêng hoặc dùng quy trình QREX (Bearer token sau khi ghép nối bằng mã PIN) và tắt mật khẩu VNC.

2. Khởi động máy chủ

  1. Trong cửa sổ chính, nhấp vào Khởi động. Chỉ báo trạng thái chuyển thành Đang chạy.
  2. Bốn trình lắng nghe cùng khởi động: VNC 5900, điều khiển QREX 5911, phương tiện QREX 4010và API tệp 8766.
  3. Nhấp vào Sao chép thông tin để sao chép một dòng gồm máy chủ, các cổng và mã PIN hiện tại vào bảng nhớ tạm.

3. Kết nối ứng dụng khách

Với trình xem VNC tiêu chuẩn (Chia sẻ màn hình macOS, RealVNC, TightVNC hoặc ứng dụng VNC di động):

  1. Mở trình xem và nhập vnc://<your-mac-ip>:5900 làm địa chỉ
  2. Nhập mật khẩu VNC đã đặt ở bước 1
  3. Điều khiển máy Mac ngay lập tức — bàn phím, chuột và sao chép/dán qua RFB

Với ứng dụng QuickRemote:

  1. Mở QuickRemote trên điện thoại hoặc máy tính bảng rồi chọn Thêm máy Mac
  2. Nhập mã PIN ghép nối gồm 6 chữ số hiển thị trong DeskVNCServer (hoặc quét mã QR nếu bản dựng QuickRemote của bạn hỗ trợ)
  3. QuickRemote lưu Bearer token được trả về và mở khóa các tính năng mở rộng — IME, âm thanh, đồng bộ bảng nhớ tạm và truyền tệp

Tổng quan giao diện

Hàng trạng thái

Thành phầnMô tả
Nhãn máy chủXác định bảng này.
Huy hiệu trạng tháiĐang chạy khi các trình lắng nghe đang hoạt động, Đã dừng trong các trường hợp còn lại.

Các nút thao tác

  • Khởi động — Khởi động cả bốn trình lắng nghe.
  • Dừng — Đóng mọi trình lắng nghe và ngắt các phiên đang hoạt động.
  • Sao chép thông tin — Sao chép bản tóm tắt kết nối ngắn (máy chủ, cổng VNC, cổng điều khiển, mã PIN) vào bảng nhớ tạm để dễ chia sẻ với ứng dụng khách.

Bảng kết nối

Hiển thị máy chủ liên kết, các cổng, Server ID hiện tại và mã PIN ghép nối đang dùng. Nội dung tự động làm mới khi cài đặt thay đổi.

Bảng API QuickRemote

Tài liệu tra cứu nhanh về các giao thức máy chủ sử dụng. Liệt kê các phiên bản RFB được hỗ trợ, cấu trúc điểm cuối QREX và tập lệnh IME để QuickRemote (hoặc ứng dụng khách của bạn) biết những gì có thể dùng.


Giao thức và cổng

Dịch vụCổng mặc địnhGiao thứcĐược sử dụng bởi
VNC / RFBTCP 5900RFB 3.8 / 3.7 / 3.3Mọi ứng dụng khách VNC tiêu chuẩn
Điều khiển QREXTCP 5911HTTP JSON RPC + WebSocketQuickRemote và các ứng dụng khách QREX khác
Phương tiện QREXUDP 4010Gói tương thích với QuickRemoteTin nhắn IME, truyền phát âm thanh
API tệpTCP 8766HTTP tương thích với QuickRemoteDuyệt và truyền tệp

Xác thực

  • Ứng dụng khách VNC — mật khẩu RFB DES (8 byte tương thích ASCII đầu tiên của mật khẩu đã cấu hình).
  • Ứng dụng khách QREX — Lần trao đổi mã PIN 6 chữ số đầu tiên tại POST /qr/v1/pair trả về một Bearer token. Mọi lệnh gọi HTTP QREX và khung WebSocket tiếp theo phải chứa Authorization: Bearer <token>.
  • Nếu mật khẩu VNC để trống, máy chủ sẽ công bố chế độ RFB tiêu chuẩn không xác thực. Chỉ nên dùng cho phân đoạn LAN đáng tin cậy.

Tham khảo nhanh điểm cuối 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

Cài đặt

Cài đặtMặc địnhMô tả
Máy chủ liên kết0.0.0.0Giao diện dùng để lắng nghe. Đặt thành 127.0.0.1 để chỉ dùng localhost.
Cổng VNC5900Cổng TCP cho trình lắng nghe RFB tiêu chuẩn.
Cổng điều khiển QREX5911Cổng TCP cho lưu lượng HTTP + WebSocket của QREX.
Cổng UDP phương tiện QREX4010Cổng UDP cho các gói kênh phụ IME và âm thanh.
Cổng API tệp QuickRemote8766Cổng TCP cho API duyệt và truyền tệp.
Mật khẩu VNC(trống)Tối đa 8 byte tương thích ASCII. Để trống nghĩa là không xác thực trên kênh VNC.
Bearer token QREX(được tạo tự động)Token đang hoạt động được cấp khi ghép nối. Tạo lại bằng cách ghép nối lại hoặc sửa trường này.
Mã PIN ghép nối(được tạo tự động)Mã PIN gồm 6 chữ số hiển thị cho QuickRemote khi ghép nối. Mã sẽ thay đổi khi bạn tạo lại.
Server ID ổn định(được tạo tự động)Mã định danh dài hạn mà QuickRemote dùng để nhận diện máy Mac này.
Tự động khởi động máy chủTắtKhởi động các trình lắng nghe khi mở ứng dụng.
Cho phép bàn phím và chuột từ xaBậtTắt để chuyển các phiên sang chế độ chỉ xem.
Bật cầu nối IMEBậtCho phép ứng dụng khách QREX truy vấn và điều khiển phương thức nhập của macOS.
Bật API âm thanhTắtCho phép truyền phát âm thanh Opus qua UDP phương tiện QREX. Mặc định tắt để tiết kiệm CPU.
Bật đồng bộ bảng nhớ tạmBậtĐồng bộ nội dung bảng nhớ tạm giữa máy Mac và ứng dụng khách từ xa.
Bật truyền tệpBậtCho phép QuickRemote liệt kê và đọc tệp. Chỉ đọc trừ khi thao tác sửa đổi cũng được bật.
Bật sửa đổi tệpTắtCho phép tải lên, đổi tên và xóa. Mặc định tắt — chỉ bật cho ứng dụng khách đáng tin cậy.
Chiều rộng khung hình tối đa1440Giới hạn chiều rộng ảnh chụp màn hình. Giá trị thấp hơn giúp giảm băng thông.
Chiều cao khung hình tối đa900Giới hạn chiều cao ảnh chụp màn hình.
Tốc độ khung hình12Số khung hình mục tiêu mỗi giây gửi đến ứng dụng khách.

Ví dụ cho ứng dụng khách

Chia sẻ màn hình macOS

  1. Finder → Đi → Kết nối với máy chủ
  2. Nhập vnc://<your-mac-ip>:5900
  3. Nhập mật khẩu VNC

cURL — khám phá khả năng

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

cURL — ghép nối và gọi cầu nối 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"}'

Mẹo

  • Giảm tốc độ khung hình và kích thước khung hình tối đa khi dùng kết nối Wi-Fi chậm hoặc định tuyến kết nối qua VPN.
  • Ghép nối mỗi thiết bị một lần. Sau lần trao đổi mã PIN đầu tiên, Bearer token vẫn tồn tại qua các lần khởi động lại nên QuickRemote sẽ tự động kết nối lại.
  • Dùng Sao chép thông tin để nhanh chóng gửi thông tin kết nối qua trò chuyện hoặc email — nội dung này bao gồm mọi thứ ứng dụng khách cần.
  • Giữ Bật sửa đổi tệp ở trạng thái tắt trừ khi thực sự cần tải lên. Chế độ chỉ đọc đủ để duyệt ảnh chụp màn hình, ghi chú hoặc tệp tải xuống.
  • Tắt API âm thanh khi không sử dụng. Codec ở trạng thái chờ vẫn tiêu tốn một ít CPU trên đường mã hóa.

Khắc phục sự cố

Máy chủ không khởi động

  • Một máy chủ VNC khác (ví dụ: Chia sẻ màn hình macOS) có thể đang dùng cổng 5900. Hãy dừng máy chủ đó trong Cài đặt hệ thống → Cài đặt chung → Chia sẻ, hoặc đổi cổng trong cài đặt DeskVNCServer.
  • Các cổng 5911 / 4010 / 8766 đều phải khả dụng. Kiểm tra bằng lsof -i :5911 và các lệnh tương tự.

Ứng dụng khách VNC không xác thực được

  • Đảm bảo mật khẩu dài tối đa 8 byte tương thích ASCII. Ký tự nhiều byte hoặc chuỗi dài hơn sẽ bị xác thực RFB DES âm thầm cắt bớt.
  • Nếu cố ý không dùng mật khẩu, hãy để trống trường và kết nối bằng trình xem hỗ trợ VNC không xác thực.

QuickRemote không thể ghép nối

  • Xác nhận điện thoại hoặc máy tính bảng đang dùng cùng mạng Wi-Fi với máy Mac.
  • Mở bảng Kết nối và đọc lại mã PIN. Có thể tạo lại mã PIN trong Cài đặt.
  • Kiểm tra cài đặt tường lửa macOS — phải cho phép kết nối đến trên các cổng QREX.

Điều khiển từ xa bị trễ

  • Giảm tốc độ khung hình và kích thước khung hình tối đa trong Cài đặt.
  • Tắt những tính năng không dùng (âm thanh, bảng nhớ tạm, IME) để giải phóng CPU.

Không truyền được tệp

  • Xác nhận Bật truyền tệp đã bật. Danh sách chỉ đọc vẫn hoạt động khi không có Bật sửa đổi tệp.
  • Nếu tải lên không thành công, hãy bật thêm Bật sửa đổi tệp. Nếu không, API tệp chỉ phản hồi các yêu cầu đọc.

Quyền riêng tư

  • Mọi phiên đều chạy trực tiếp giữa ứng dụng khách và máy Mac của bạn. Không có chuyển tiếp đám mây, đo từ xa hay phân tích dữ liệu.
  • Mật khẩu VNC, Bearer token QREX, mã PIN ghép nối và Server ID ổn định chỉ được lưu trong cài đặt ứng dụng cục bộ.
  • Sửa đổi tệp mặc định bị tắt. Ứng dụng khách từ xa chỉ có thể đọc cho đến khi bạn chủ động cấp quyền ghi.
  • Bạn có thể tắt bất kỳ tiện ích mở rộng nào (âm thanh, bảng nhớ tạm, truyền tệp, IME, nhập liệu từ xa) bất cứ lúc nào để thu hồi ngay khả năng đó.
  • Nếu muốn máy chủ chỉ hoạt động cục bộ trên máy Mac, hãy đặt máy chủ liên kết thành 127.0.0.1.