Uruchom standardowy serwer VNC na swoim Macu i udostępniaj ekran, schowek, pliki, a nawet IME za pomocą QuickRemote — wszystko w sieci lokalnej, bez przekaźnika w chmurze.
Pierwsze kroki
1. Ustaw hasło
Otwórz Ustawienia (ikona koła zębatego, dolny pasek narzędzi) i wypełnij hasło VNC. Standardowi klienci VNC używają RFB DES challenge, który respektuje tylko pierwsze 8 bajtów kompatybilnych z ASCII — wybierz hasło nie dłuższe niż 8 znaków.
2. Uruchom serwer
- W oknie głównym kliknij Start. Wskaźnik stanu przełącza się na Running.
- Naraz uruchamiane są cztery nasłuchy: VNC
5900, QREX control5911, QREX media4010oraz file API8766. - Kliknij Copy Info, aby skopiować jednolinijkowy tekst z hostem, portami i aktualnym PIN-em do schowka.
3. Połącz klienta
Dla standardowej przeglądarki VNC (macOS Screen Sharing, RealVNC, TightVNC, mobilne aplikacje VNC):
- Otwórz przeglądarkę i jako adres wpisz
vnc://<your-mac-ip>:5900 - Wpisz hasło VNC ustawione w kroku 1
- Natychmiast steruj swoim Makiem — klawiatura, mysz, kopiowanie/wklejanie przez RFB
Dla aplikacji QuickRemote:
- Otwórz QuickRemote na telefonie lub tablecie i wybierz Add Mac
- Wpisz 6-cyfrowy PIN parowania wyświetlony przez DeskVNCServer (lub zeskanuj kod QR, jeśli Twoja wersja QuickRemote to obsługuje)
- QuickRemote zapisuje zwrócony Bearer token i odblokowuje rozszerzone funkcje — IME, audio, synchronizację schowka i przesyłanie plików
Przegląd interfejsu
Wiersz statusu
| Element | Opis |
|---|---|
| Etykieta serwera | Identyfikuje ten panel. |
| Odznaka statusu | Running gdy nasłuchy są aktywne, w przeciwnym razie Stopped. |
Przyciski akcji
- Start — Uruchamia wszystkie cztery nasłuchy.
- Stop — Zamyka każdy nasłuch i rozłącza aktywne sesje.
- Copy Info — Kopiuje krótkie podsumowanie połączenia (host, port VNC, port kontrolny, PIN) do schowka, aby łatwo udostępnić klientowi.
Panel połączenia
Wyświetla bind host, porty, aktualne Server ID i aktywny PIN parowania. Tekst jest automatycznie odświeżany przy zmianie ustawień.
Panel QuickRemote API
Szybkie odniesienie do protokołów, którymi posługuje się serwer. Wymienia obsługiwane wersje RFB, kształty endpointów QREX oraz zestaw komend IME, aby QuickRemote (lub Twój własny klient) wiedział, co jest dostępne.
Protokoły i porty
| Usługa | Port domyślny | Protokół | Używane przez |
|---|---|---|---|
| VNC / RFB | TCP 5900 | RFB 3.8 / 3.7 / 3.3 | Dowolny standardowy klient VNC |
| QREX control | TCP 5911 | HTTP JSON RPC + WebSocket | QuickRemote i inni klienci QREX |
| QREX media | UDP 4010 | Pakiety kompatybilne z QuickRemote | Wiadomości IME, streaming audio |
| File API | TCP 8766 | HTTP kompatybilne z QuickRemote | Przeglądanie i przesyłanie plików |
Uwierzytelnianie
- Klienci VNC — hasło RFB DES (pierwsze 8 bajtów skonfigurowanego hasła kompatybilnych z ASCII).
- Klienci QREX — Początkowa wymiana 6-cyfrowego PIN-u w
POST /qr/v1/pairzwraca Bearer token. Każde kolejne wywołanie HTTP QREX i ramka WebSocket muszą zawieraćAuthorization: Bearer <token>. - Jeśli hasło VNC jest puste, serwer ogłasza standardowy tryb RFB no-auth. Przydatne tylko dla zaufanych segmentów LAN.
Szybkie odniesienie do endpointów 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
Ustawienia
| Ustawienie | Domyślne | Opis |
|---|---|---|
| Bind host | 0.0.0.0 | Interfejs do nasłuchiwania. Ustaw na 127.0.0.1, aby tylko localhost. |
| Port VNC | 5900 | Port TCP dla standardowego nasłuchu RFB. |
| Port QREX control | 5911 | Port TCP dla ruchu HTTP + WebSocket QREX. |
| Port UDP QREX media | 4010 | Port UDP dla pakietów bocznych IME i audio. |
| Port API plików QuickRemote | 8766 | Port TCP dla API przeglądania i przesyłania plików. |
| Hasło VNC | (puste) | Do 8 bajtów kompatybilnych z ASCII. Puste oznacza no-auth na kanale VNC. |
| QREX bearer token | (wygenerowany) | Aktywny token wydany podczas parowania. Wygeneruj ponownie poprzez ponowne parowanie lub edycję tego pola. |
| PIN parowania | (wygenerowany) | 6-cyfrowy PIN wyświetlany QuickRemote podczas parowania. Rotuje przy regeneracji. |
| Stabilne server ID | (wygenerowane) | Długotrwały identyfikator, którego QuickRemote używa do rozpoznawania tego Maca. |
| Uruchamiaj serwer automatycznie | Wyłączone | Uruchamia nasłuchy przy starcie aplikacji. |
| Zezwól na zdalną klawiaturę i mysz | Włączone | Wyłącz, aby sesje były tylko do podglądu. |
| Włącz IME bridge | Włączone | Pozwala klientom QREX odpytywać i kontrolować metodę wprowadzania macOS. |
| Włącz audio API | Wyłączone | Pozwala na streaming audio Opus przez QREX media UDP. Domyślnie wyłączone w celu oszczędzania CPU. |
| Włącz synchronizację schowka | Włączone | Lustruje zawartość schowka między Makiem a zdalnym klientem. |
| Włącz przesyłanie plików | Włączone | Pozwala QuickRemote wyświetlać i odczytywać pliki. Tylko do odczytu, chyba że włączone są również mutacje. |
| Włącz mutacje plików | Wyłączone | Pozwala na przesyłanie, zmianę nazw i usuwanie. Domyślnie wyłączone — włącz tylko dla zaufanych klientów. |
| Maksymalna szerokość klatki | 1440 | Limit szerokości przechwytywania ekranu. Niższe wartości zmniejszają przepustowość. |
| Maksymalna wysokość klatki | 900 | Limit wysokości przechwytywania ekranu. |
| Liczba klatek na sekundę | 12 | Docelowa liczba klatek na sekundę wysyłanych do klientów. |
Przykłady klientów
macOS Screen Sharing
- Finder → Go → Connect to Server
- Wpisz
vnc://<your-mac-ip>:5900 - Wprowadź hasło VNC
cURL — odkrywanie możliwości
curl http://<your-mac-ip>:5911/qr/v1/capabilities
cURL — parowanie i wywołanie 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"}'
Wskazówki
- Obniż liczbę klatek na sekundę i maksymalne wymiary klatki, gdy jesteś na wolnym łączu Wi-Fi lub kierujesz połączenie przez VPN.
- Każde urządzenie sparuj raz. Po początkowej wymianie PIN-u Bearer token przetrwa ponowne uruchomienia, więc QuickRemote łączy się ponownie po cichu.
- Użyj Copy Info jako szybkiego sposobu na wysłanie szczegółów połączenia przez czat lub e-mail — zawiera wszystko, czego potrzebuje klient.
- Pozostaw Enable file mutations wyłączone, chyba że naprawdę potrzebujesz przesyłania. Tryb tylko do odczytu wystarczy do przeglądania zrzutów ekranu, notatek lub pobranych plików.
- Wyłącz audio API, gdy go nie używasz. Bezczynne kodeki nadal kosztują niewielką ilość CPU na ścieżce kodowania.
Rozwiązywanie problemów
Serwer nie uruchamia się
- Inny serwer VNC (np. macOS Screen Sharing) może już być na porcie 5900. Zatrzymaj go w System Settings → General → Sharing lub zmień port w ustawieniach DeskVNCServer.
- Porty 5911 / 4010 / 8766 muszą być wszystkie wolne. Sprawdź za pomocą
lsof -i :5911i podobnych.
Klienci VNC nie mogą się uwierzytelnić
- Upewnij się, że hasło ma najwyżej 8 bajtów kompatybilnych z ASCII. Znaki wielobajtowe lub dłuższe ciągi są po cichu obcinane przez uwierzytelnianie RFB DES.
- Jeśli celowo nie chcesz hasła, pozostaw pole puste i połącz się przeglądarką, która obsługuje VNC no-auth.
QuickRemote nie może się sparować
- Potwierdź, że telefon lub tablet jest w tej samej sieci Wi-Fi co Mac.
- Otwórz panel Connection i przeczytaj PIN ponownie. PIN można zregenerować z Ustawień.
- Sprawdź ustawienia zapory macOS — połączenia przychodzące na portach QREX muszą być dozwolone.
Zdalne sterowanie jest opóźnione
- Obniż liczbę klatek na sekundę i maksymalne wymiary klatki w Ustawieniach.
- Wyłącz funkcje, których nie używasz (audio, schowek, IME), aby zwolnić CPU.
Pliki nie są przesyłane
- Potwierdź, że Enable file transfer jest włączone. Listowanie tylko do odczytu działa bez Enable file mutations.
- Jeśli przesyłanie się nie powiedzie, włącz również Enable file mutations. W przeciwnym razie file API odpowiada tylko na żądania odczytu.
Prywatność
- Wszystkie sesje działają bezpośrednio między klientem a Twoim Makiem. Nie ma przekaźnika w chmurze, telemetrii ani analityki.
- Hasło VNC, QREX Bearer token, PIN parowania i stabilne Server ID są przechowywane tylko w lokalnych ustawieniach aplikacji.
- Mutacje plików są domyślnie wyłączone. Klienci zdalni mogą tylko odczytywać, dopóki nie przyznasz wyraźnie dostępu do zapisu.
- W dowolnym momencie wyłącz dowolne rozszerzenie (audio, schowek, przesyłanie plików, IME, zdalne wejście), aby natychmiast odebrać tę możliwość.
- Jeśli chcesz utrzymać serwer lokalny dla swojego Maca, ustaw bind host na
127.0.0.1.