Draai een standaard VNC-server op je Mac en deel scherm, klembord, bestanden en zelfs het IME met QuickRemote, allemaal binnen je lokale netwerk, zonder cloud-relay.
Aan de slag
1. Stel een wachtwoord in
Open Instellingen (tandwielpictogram, onderste werkbalk) en vul het VNC password in. Standaard VNC-clients gebruiken de RFB DES-challenge, die alleen de eerste 8 ASCII-compatibele bytes respecteert: kies een wachtwoord van maximaal 8 tekens.
2. Start de server
- Klik in het hoofdvenster op Start. De statusindicator gaat naar Running.
- Vier listeners komen tegelijk omhoog: VNC
5900, QREX-control5911, QREX-media4010en de file API8766. - Klik Copy Info om een eenregelige tekst met host, poorten en huidige PIN naar het klembord te kopieren.
3. Verbind een client
Voor een standaard VNC-viewer (macOS Screen Sharing, RealVNC, TightVNC, mobiele VNC-apps):
- Open de viewer en voer
vnc://<your-mac-ip>:5900in als adres - Typ het VNC password dat je in stap 1 hebt ingesteld
- Bedien je Mac meteen: toetsenbord, muis, kopieren/plakken via RFB
Voor de QuickRemote-app:
- Open QuickRemote op telefoon of tablet en kies Add Mac
- Voer de 6-cijferige pairing-PIN in die DeskVNCServer toont (of scan de QR-code als jouw QuickRemote-build dat ondersteunt)
- QuickRemote bewaart het ontvangen Bearer-token en ontgrendelt de uitgebreide functies: IME, audio, klembordsync en bestandsoverdracht
Overzicht van de interface
Statusregel
| Element | Beschrijving |
|---|---|
| Server-label | Identificeert dit paneel. |
| Statusbadge | Running zolang de listeners actief zijn, anders Stopped. |
Actieknoppen
- Start: brengt alle vier de listeners omhoog.
- Stop: sluit alle listeners en verbreekt actieve sessies.
- Copy Info: kopieert een korte verbindingssamenvatting (host, VNC-poort, control-poort, PIN) naar het klembord om eenvoudig met een client te delen.
Verbindingspaneel
Toont de bind host, de poorten, het huidige Server ID en de actieve pairing-PIN. De tekst wordt automatisch ververst wanneer instellingen veranderen.
QuickRemote API-paneel
Snelreferentie van de protocollen die de server spreekt. Toont de ondersteunde RFB-versies, de vorm van de QREX-endpoints en de IME-commandoset, zodat QuickRemote (of je eigen client) weet wat beschikbaar is.
Protocollen en poorten
| Dienst | Standaardpoort | Protocol | Gebruikt door |
|---|---|---|---|
| VNC / RFB | TCP 5900 | RFB 3.8 / 3.7 / 3.3 | Elke standaard VNC-client |
| QREX control | TCP 5911 | HTTP JSON RPC + WebSocket | QuickRemote en andere QREX-clients |
| QREX media | UDP 4010 | QuickRemote-compatibele pakketten | IME-berichten, audio-streaming |
| File API | TCP 8766 | QuickRemote-compatibele HTTP | Bestanden bladeren en overdragen |
Authenticatie
- VNC-clients: RFB DES-wachtwoord (eerste 8 ASCII-compatibele bytes van het geconfigureerde wachtwoord).
- QREX-clients: de initiele uitwisseling van de 6-cijferige PIN op
POST /qr/v1/pairlevert een Bearer-token op. Elke volgende QREX HTTP-aanroep en elk WebSocket-frame moetenAuthorization: Bearer <token>bevatten. - Is het VNC password leeg, dan kondigt de server de standaard RFB no-auth-modus aan. Alleen geschikt voor vertrouwde LAN-segmenten.
Snelreferentie QREX-endpoints
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
Instellingen
| Instelling | Standaard | Beschrijving |
|---|---|---|
| Bind host | 0.0.0.0 | Interface om op te luisteren. Stel 127.0.0.1 in voor uitsluitend localhost. |
| VNC port | 5900 | TCP-poort voor de standaard RFB-listener. |
| QREX control port | 5911 | TCP-poort voor HTTP + WebSocket QREX-verkeer. |
| QREX media UDP port | 4010 | UDP-poort voor IME- en audio-zijkanaalpakketten. |
| QuickRemote file API port | 8766 | TCP-poort voor de API voor bestandsbeheer en -overdracht. |
| VNC password | (leeg) | Tot 8 ASCII-compatibele bytes. Leeg betekent geen authenticatie op het VNC-kanaal. |
| QREX bearer token | (gegenereerd) | Actief token uitgegeven bij pairing. Vernieuw door opnieuw te pairen of dit veld te bewerken. |
| Pairing PIN | (gegenereerd) | Tijdens het pairing-proces aan QuickRemote getoonde 6-cijferige PIN. Roteert wanneer je opnieuw genereert. |
| Stable server ID | (gegenereerd) | Langlevende identifier die QuickRemote gebruikt om deze Mac te herkennen. |
| Start server automatically | Off | Start de listeners bij het openen van de app. |
| Allow remote keyboard and mouse | On | Zet uit om sessies alleen-bekijken te maken. |
| Enable IME bridge | On | Laat QREX-clients de macOS-invoermethode opvragen en aansturen. |
| Enable audio API | Off | Sta Opus-audio-streaming toe via QREX media UDP. Standaard uit om CPU te sparen. |
| Enable clipboard sync | On | Spiegelt de klembordinhoud tussen Mac en remote client. |
| Enable file transfer | On | Laat QuickRemote bestanden tonen en lezen. Alleen-lezen tenzij ook mutaties zijn ingeschakeld. |
| Enable file mutations | Off | Sta uploads, hernoemen en verwijderen toe. Standaard uit; schakel alleen in voor vertrouwde clients. |
| Max frame width | 1440 | Maximum breedte voor schermopname. Lagere waarden besparen bandbreedte. |
| Max frame height | 900 | Maximum hoogte voor schermopname. |
| Frame rate | 12 | Doel aantal frames per seconde dat naar clients wordt verzonden. |
Voorbeeldclients
macOS Screen Sharing
- Finder → Ga → Verbind met server
- Typ
vnc://<your-mac-ip>:5900 - Voer het VNC password in
cURL: capabilities ophalen
curl http://<your-mac-ip>:5911/qr/v1/capabilities
cURL: pairen en de IME bridge aanroepen
# 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"}'
Tips
- Verlaag de frame rate en de maximale frame-afmetingen wanneer je op een trage Wi-Fi-verbinding zit of de verbinding via een VPN routeert.
- Pair elk apparaat eenmaal. Na de eerste PIN-uitwisseling overleeft het Bearer-token herstarts, zodat QuickRemote stilletjes opnieuw verbindt.
- Gebruik Copy Info als snelle manier om verbindingsgegevens via chat of e-mail te delen: het bevat alles wat een client nodig heeft.
- Houd Enable file mutations uit, tenzij je echt uploads nodig hebt. De alleen-lezen-modus volstaat voor het bekijken van screenshots, notities of downloads.
- Schakel de audio API uit wanneer je hem niet gebruikt. Codecs in rust kosten nog steeds wat CPU op het encodeerpad.
Probleemoplossing
De server start niet
- Mogelijk gebruikt een andere VNC-server (bijvoorbeeld macOS Screen Sharing) al poort 5900. Stop hem via System Settings → General → Sharing, of wijzig de poort in de DeskVNCServer-instellingen.
- De poorten 5911 / 4010 / 8766 moeten allemaal vrij zijn. Controleer met
lsof -i :5911en vergelijkbare commando's.
VNC-clients kunnen niet authenticeren
- Zorg dat het wachtwoord hoogstens 8 ASCII-compatibele bytes telt. Multibyte-tekens of langere strings worden stilzwijgend afgekapt door de RFB DES-authenticatie.
- Wil je opzettelijk geen wachtwoord, laat het veld dan leeg en verbind met een viewer die VNC no-auth ondersteunt.
QuickRemote kan niet pairen
- Controleer dat telefoon of tablet op dezelfde Wi-Fi zit als de Mac.
- Open het verbindingspaneel en lees de PIN opnieuw af. De PIN kan vanuit de instellingen opnieuw gegenereerd worden.
- Controleer de firewallinstellingen van macOS: inkomende verbindingen op de QREX-poorten moeten zijn toegestaan.
Bediening op afstand voelt traag
- Verlaag de frame rate en de maximale frame-afmetingen in de instellingen.
- Schakel ongebruikte functies (audio, klembord, IME) uit om CPU vrij te maken.
Bestanden worden niet overgedragen
- Controleer of Enable file transfer aanstaat. Alleen-lezen-overzichten werken zonder Enable file mutations.
- Mislukken uploads, schakel dan ook Enable file mutations in. Anders beantwoordt de File API alleen leesverzoeken.
Privacy
- Alle sessies lopen direct tussen de client en je Mac. Geen cloud-relay, geen telemetrie, geen analytics.
- Het VNC password, het QREX Bearer-token, de pairing-PIN en het Stable Server ID worden alleen in de lokale app-instellingen opgeslagen.
- Bestandsmutaties staan standaard uit. Remote clients kunnen alleen lezen totdat je expliciet schrijfrechten verleent.
- Schakel een uitbreiding (audio, klembord, bestandsoverdracht, IME, externe invoer) op elk moment uit om die mogelijkheid onmiddellijk in te trekken.
- Wil je de server tot je Mac beperken, stel dan de bind host in op
127.0.0.1.