DeskVNCServer - Ghid

Rulați un server VNC standard pe Mac-ul dvs. și partajați ecranul, clipboard-ul, fișierele și chiar IME-ul cu QuickRemote — totul în rețeaua locală, fără releu cloud.


Primii pași

1. Setați o parolă

Deschideți Setări (pictograma roată dințată, bara de jos) și completați parola VNC. Clienții VNC standard folosesc challenge-ul RFB DES, care onorează doar primii 8 octeți compatibili ASCII — alegeți o parolă de cel mult 8 caractere.

Despre parolele scurte: Aceasta este o limitare a protocolului RFB în sine, nu a DeskVNCServer. Dacă aveți nevoie de autentificare mai puternică, restricționați serverul la o rețea privată sau utilizați fluxul QREX (token Bearer după asocierea PIN) și dezactivați parola VNC.

2. Porniți serverul

  1. În fereastra principală, faceți clic pe Start. Indicatorul de stare comută la Running.
  2. Patru ascultători pornesc simultan: VNC 5900, QREX control 5911, QREX media 4010 și file API 8766.
  3. Faceți clic pe Copy Info pentru a copia un text pe o linie cu host-ul, porturile și PIN-ul curent în clipboard.

3. Conectați un client

Pentru un vizualizator VNC standard (macOS Screen Sharing, RealVNC, TightVNC, aplicații VNC mobile):

  1. Deschideți vizualizatorul și introduceți vnc://<your-mac-ip>:5900 ca adresă
  2. Tastați parola VNC setată la pasul 1
  3. Controlați-vă Mac-ul imediat — tastatură, mouse, copiere/lipire prin RFB

Pentru aplicația QuickRemote:

  1. Deschideți QuickRemote pe telefon sau tabletă, alegeți Add Mac
  2. Introduceți PIN-ul de asociere de 6 cifre afișat de DeskVNCServer (sau scanați codul QR dacă versiunea dvs. QuickRemote o suportă)
  3. QuickRemote stochează token-ul Bearer returnat și deblochează caracteristicile extinse — IME, audio, sincronizare clipboard și transfer de fișiere

Prezentare generală a interfeței

Rândul de stare

ElementDescriere
Etichetă serverIdentifică acest panou.
Insignă de stareRunning când ascultătorii sunt activi, altfel Stopped.

Butoane de acțiune

  • Start — Pornește toți cei patru ascultători.
  • Stop — Închide fiecare ascultător și deconectează sesiunile active.
  • Copy Info — Copiază un rezumat scurt al conexiunii (host, port VNC, port control, PIN) în clipboard pentru partajare ușoară cu un client.

Panou de conexiune

Afișează bind host, porturile, Server ID-ul curent și PIN-ul de asociere activ. Textul este reîmprospătat automat când setările se schimbă.

Panou QuickRemote API

Referință rapidă pentru protocoalele pe care le folosește serverul. Listează versiunile RFB acceptate, formele endpoint-urilor QREX și setul de comenzi IME astfel încât QuickRemote (sau clientul dvs.) să știe ce este disponibil.


Protocoale și porturi

ServiciuPort implicitProtocolFolosit de
VNC / RFBTCP 5900RFB 3.8 / 3.7 / 3.3Orice client VNC standard
QREX controlTCP 5911HTTP JSON RPC + WebSocketQuickRemote și alți clienți QREX
QREX mediaUDP 4010Pachete compatibile QuickRemoteMesaje IME, streaming audio
File APITCP 8766HTTP compatibil QuickRemoteNavigarea și transferul fișierelor

Autentificare

  • Clienți VNC — Parolă RFB DES (primii 8 octeți compatibili ASCII ai parolei configurate).
  • Clienți QREX — Schimbul inițial al PIN-ului de 6 cifre la POST /qr/v1/pair returnează un token Bearer. Fiecare apel HTTP QREX ulterior și cadru WebSocket trebuie să includă Authorization: Bearer <token>.
  • Dacă parola VNC este goală, serverul anunță modul RFB no-auth standard. Util doar pentru segmente LAN de încredere.

Referință rapidă a endpoint-urilor 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

Setări

SetareImplicitDescriere
Bind host0.0.0.0Interfața pe care se ascultă. Setați la 127.0.0.1 doar pentru localhost.
Port VNC5900Port TCP pentru ascultătorul RFB standard.
Port QREX control5911Port TCP pentru traficul HTTP + WebSocket QREX.
Port UDP QREX media4010Port UDP pentru pachete laterale IME și audio.
Port QuickRemote file API8766Port TCP pentru API-ul de navigare și transfer fișiere.
Parolă VNC(gol)Până la 8 octeți compatibili ASCII. Gol înseamnă no-auth pe canalul VNC.
QREX bearer token(generat)Token activ emis la asociere. Regenerați prin reasociere sau editarea acestui câmp.
PIN de asociere(generat)PIN de 6 cifre afișat în QuickRemote în timpul asocierii. Se rotește când regenerați.
Server ID stabil(generat)Identificator de lungă durată pe care QuickRemote îl folosește pentru a recunoaște acest Mac.
Pornire automată a serveruluiOffPornește ascultătorii la lansarea aplicației.
Permite tastatură și mouse la distanțăOnDezactivați pentru ca sesiunile să fie doar pentru vizualizare.
Activează IME bridgeOnPermite clienților QREX să interogheze și să controleze metoda de intrare macOS.
Activează audio APIOffPermite streaming audio Opus prin QREX media UDP. Dezactivat implicit pentru a economisi CPU.
Activează sincronizarea clipboardOnReflectă conținutul clipboard între Mac și clientul de la distanță.
Activează transferul de fișiereOnPermite QuickRemote să listeze și să citească fișiere. Doar citire dacă mutațiile nu sunt și ele activate.
Activează mutațiile fișierelorOffPermite încărcări, redenumiri și ștergeri. Dezactivat implicit — activați doar pentru clienți de încredere.
Lățime maximă cadru1440Limita pentru lățimea capturii ecranului. Valori mai mici reduc lățimea de bandă.
Înălțime maximă cadru900Limita pentru înălțimea capturii ecranului.
Rată de cadre12Numărul țintă de cadre pe secundă trimise clienților.

Exemple de clienți

macOS Screen Sharing

  1. Finder → Go → Connect to Server
  2. Tastați vnc://<your-mac-ip>:5900
  3. Introduceți parola VNC

cURL — descoperirea capabilităților

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

cURL — asociere și apelarea 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"}'

Sfaturi

  • Reduceți rata de cadre și dimensiunile maxime ale cadrului când sunteți pe o legătură Wi-Fi lentă sau dirijați conexiunea prin VPN.
  • Asociați fiecare dispozitiv o dată. După schimbul inițial de PIN, token-ul Bearer supraviețuiește repornirilor, astfel încât QuickRemote se reconectează silențios.
  • Folosiți Copy Info ca mod rapid de a trimite detaliile conexiunii prin chat sau email — include tot ce are nevoie un client.
  • Lăsați Enable file mutations dezactivat decât dacă chiar aveți nevoie de încărcări. Modul doar pentru citire este suficient pentru a naviga capturi de ecran, notițe sau descărcări.
  • Dezactivați audio API când nu îl folosiți. Codecurile inactive încă costă o cantitate mică de CPU pe calea de codificare.

Depanare

Serverul nu pornește

  • Un alt server VNC (de ex. macOS Screen Sharing) ar putea fi deja pe portul 5900. Opriți-l din System Settings → General → Sharing sau schimbați portul în setările DeskVNCServer.
  • Porturile 5911 / 4010 / 8766 trebuie să fie toate libere. Verificați cu lsof -i :5911 și similare.

Clienții VNC nu se autentifică

  • Asigurați-vă că parola are cel mult 8 octeți compatibili ASCII. Caracterele multibyte sau șirurile mai lungi sunt trunchiate silențios de autentificarea RFB DES.
  • Dacă doriți intenționat fără parolă, lăsați câmpul gol și conectați-vă cu un vizualizator care suportă VNC no-auth.

QuickRemote nu se poate asocia

  • Confirmați că telefonul sau tableta este pe același Wi-Fi ca Mac-ul.
  • Deschideți panoul Connection și citiți din nou PIN-ul. PIN-ul poate fi regenerat din Setări.
  • Verificați setările firewall macOS — conexiunile primite pe porturile QREX trebuie să fie permise.

Controlul la distanță este lent

  • Reduceți rata de cadre și dimensiunile maxime ale cadrului în Setări.
  • Dezactivați caracteristicile pe care nu le folosiți (audio, clipboard, IME) pentru a elibera CPU.

Fișierele nu se transferă

  • Confirmați că Enable file transfer este activat. Listarea doar pentru citire funcționează fără Enable file mutations.
  • Dacă încărcările eșuează, activați și Enable file mutations. Altfel file API răspunde doar la cererile de citire.

Confidențialitate

  • Toate sesiunile rulează direct între client și Mac-ul dvs. Nu există releu cloud, telemetrie sau analitică.
  • Parola VNC, token-ul QREX Bearer, PIN-ul de asociere și Server ID-ul stabil sunt stocate doar în setările locale ale aplicației.
  • Mutațiile fișierelor sunt dezactivate implicit. Clienții de la distanță pot doar citi până când acordați explicit acces de scriere.
  • Dezactivați orice extensie (audio, clipboard, transfer fișiere, IME, intrare de la distanță) în orice moment pentru a revoca imediat acea capabilitate.
  • Dacă doriți să păstrați serverul local pentru Mac-ul dvs., setați bind host la 127.0.0.1.