DeskVNCServer - Руководство

Запустите на Mac стандартный VNC-сервер и делитесь экраном, буфером обмена, файлами и даже методом ввода с QuickRemote — всё в вашей локальной сети, без облачного ретранслятора.


Начало работы

1. Задайте пароль

Откройте настройки (значок шестерёнки в нижней панели) и заполните поле Пароль VNC. Стандартные VNC-клиенты используют DES-проверку RFB, которая учитывает только первые 8 ASCII-совместимых байтов — выбирайте пароль не длиннее 8 символов.

О коротких паролях: Это ограничение самого протокола RFB, а не DeskVNCServer. Если нужна более надёжная аутентификация, ограничьте сервер частной сетью или используйте схему QREX (Bearer token после сопряжения по PIN-коду) и отключите пароль VNC.

2. Запустите сервер

  1. В главном окне нажмите Запустить. Индикатор статуса меняется на Запущен.
  2. Одновременно поднимаются четыре прослушивателя: VNC 5900, управление QREX 5911, медиапоток QREX 4010и файловый API 8766.
  3. Нажмите Копировать сведения , чтобы скопировать в буфер обмена строку с хостом, портами и текущим PIN-кодом.

3. Подключите клиент

Для стандартного VNC-клиента (общий доступ к экрану macOS, RealVNC, TightVNC, мобильные VNC-приложения):

  1. Откройте клиент и введите vnc://<your-mac-ip>:5900 в качестве адреса
  2. Введите пароль VNC, заданный на шаге 1
  3. Сразу управляйте своим Mac — клавиатура, мышь, копирование и вставка по RFB

Для приложения QuickRemote:

  1. Откройте QuickRemote на телефоне или планшете и выберите Добавить Mac
  2. Введите 6-значный PIN-код сопряжения, показанный DeskVNCServer (или отсканируйте QR-код, если ваша сборка QuickRemote это поддерживает)
  3. QuickRemote сохраняет полученный Bearer token и открывает расширенные возможности — метод ввода, звук, синхронизацию буфера обмена и передачу файлов

Обзор интерфейса

Строка статуса

ЭлементОписание
Подпись сервераОбозначает эту панель.
Значок статусаЗапущен пока прослушиватели активны, Остановлен в остальных случаях.

Кнопки действий

  • Запустить — Поднимает все четыре прослушивателя.
  • Остановить — Закрывает все прослушиватели и разрывает активные сеансы.
  • Копировать сведения — Копирует в буфер обмена краткую сводку подключения (хост, порт VNC, порт управления, PIN), чтобы её было удобно передать клиенту.

Панель подключения

Показывает хост привязки, порты, текущий идентификатор сервера и активный PIN-код сопряжения. Текст обновляется автоматически при изменении настроек.

Панель API QuickRemote

Краткий справочник по протоколам, которые понимает сервер. Перечисляет поддерживаемые версии RFB, форматы конечных точек QREX и набор команд метода ввода, чтобы QuickRemote (или ваш собственный клиент) знал, что доступно.


Протоколы и порты

СлужбаПорт по умолчаниюПротоколКто использует
VNC / RFBTCP 5900RFB 3.8 / 3.7 / 3.3Любой стандартный VNC-клиент
Управление QREXTCP 5911HTTP JSON RPC + WebSocketQuickRemote и другие клиенты QREX
Медиапоток QREXUDP 4010Пакеты, совместимые с QuickRemoteСообщения метода ввода, потоковая передача звука
Файловый APITCP 8766HTTP, совместимый с QuickRemoteПросмотр и передача файлов

Аутентификация

  • VNC-клиенты — DES-пароль RFB (первые 8 ASCII-совместимых байтов заданного пароля).
  • Клиенты QREX — Первичный обмен 6-значным PIN-кодом по POST /qr/v1/pair возвращает Bearer token. Каждый последующий HTTP-вызов QREX и кадр WebSocket должны содержать Authorization: Bearer <token>.
  • Если пароль VNC пуст, сервер объявляет стандартный режим RFB без аутентификации. Подходит только для доверенных сегментов локальной сети.

Краткий справочник по конечным точкам QREX

GET  /qr/v1/capabilities    # публично, возвращает поддерживаемые функции
POST /qr/v1/pair            # публично, обмен PIN на Bearer token
GET  /qr/v1/ws              # WebSocket, требуется авторизация
POST /qr/v1/ime/get         # требуется авторизация, запрос активного метода ввода
POST /qr/v1/ime/list        # требуется авторизация, список доступных методов ввода
POST /qr/v1/ime/set         # требуется авторизация, переключение метода ввода
POST /qr/v1/ime/toggle      # требуется авторизация, включение/выключение метода ввода
POST /qr/v1/ime/commit      # требуется авторизация, отправка строки текста

Настройки

ПараметрПо умолчаниюОписание
Хост привязки0.0.0.0Интерфейс для прослушивания. Укажите 127.0.0.1 для доступа только с этого компьютера.
Порт VNC5900TCP-порт стандартного прослушивателя RFB.
Порт управления QREX5911TCP-порт для трафика QREX по HTTP и WebSocket.
UDP-порт медиапотока QREX4010UDP-порт для пакетов метода ввода и звукового побочного канала.
Порт файлового API QuickRemote8766TCP-порт API просмотра и передачи файлов.
Пароль VNC(пусто)До 8 ASCII-совместимых байтов. Пустое значение означает отсутствие аутентификации в канале VNC.
Bearer token QREX(генерируется)Активный токен, выданный при сопряжении. Обновите его повторным сопряжением или правкой этого поля.
PIN-код сопряжения(генерируется)6-значный PIN-код, показываемый QuickRemote при сопряжении. Меняется при повторной генерации.
Постоянный идентификатор сервера(генерируется)Долговременный идентификатор, по которому QuickRemote узнаёт этот Mac.
Запускать сервер автоматическиВыкл.Поднимать прослушиватели при запуске приложения.
Разрешить удалённые клавиатуру и мышьВкл.Отключите, чтобы сеансы были только для просмотра.
Включить мост метода вводаВкл.Разрешить клиентам QREX запрашивать и переключать метод ввода macOS.
Включить звуковой APIВыкл.Разрешить потоковую передачу звука Opus по UDP-каналу QREX. По умолчанию выключено для экономии ресурсов процессора.
Включить синхронизацию буфера обменаВкл.Зеркалировать содержимое буфера обмена между Mac и удалённым клиентом.
Включить передачу файловВкл.Разрешить QuickRemote просматривать и читать файлы. Только чтение, если не включены также изменения.
Включить изменение файловВыкл.Разрешить загрузку, переименование и удаление. По умолчанию выключено — включайте только для доверенных клиентов.
Макс. ширина кадра1440Ограничение ширины захвата экрана. Меньшие значения снижают нагрузку на канал.
Макс. высота кадра900Ограничение высоты захвата экрана.
Частота кадров12Целевое число кадров в секунду, отправляемых клиентам.

Примеры клиентов

Общий доступ к экрану macOS

  1. Finder → Переход → Подключение к серверу
  2. Введите vnc://<your-mac-ip>:5900
  3. Введите пароль VNC

cURL — узнать возможности

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

cURL — сопряжение и вызов моста метода ввода

# 1. Обменяйте PIN на 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. Отправьте текст через мост метода ввода
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 token сохраняется даже после перезагрузок, поэтому QuickRemote переподключается незаметно.
  • Используйте Копировать сведения , чтобы быстро отправить данные подключения в чате или по электронной почте — там есть всё, что нужно клиенту.
  • Держите Включить изменение файлов выключенным, пока загрузка файлов действительно не понадобится. Режима «только чтение» достаточно для просмотра скриншотов, заметок и загрузок.
  • Отключайте звуковой API, когда он не нужен. Простаивающие кодеки всё равно немного нагружают процессор при кодировании.

Устранение неполадок

Сервер не запускается

  • Возможно, порт 5900 уже занят другим VNC-сервером (например, общим доступом к экрану macOS). Остановите его в «Системных настройках» → «Основные» → «Общий доступ» либо измените порт в настройках DeskVNCServer.
  • Порты 5911 / 4010 / 8766 должны быть свободны. Проверьте командой lsof -i :5911 и подобными.

VNC-клиенты не проходят аутентификацию

  • Убедитесь, что пароль занимает не более 8 ASCII-совместимых байтов. Многобайтовые символы и более длинные строки молча обрезаются DES-аутентификацией RFB.
  • Если пароль не нужен намеренно, оставьте поле пустым и подключайтесь клиентом, поддерживающим режим VNC без аутентификации.

QuickRemote не может выполнить сопряжение

  • Убедитесь, что телефон или планшет подключён к той же сети Wi-Fi, что и Mac.
  • Откройте панель подключения и посмотрите PIN-код заново. PIN можно сгенерировать заново в настройках.
  • Проверьте настройки брандмауэра macOS — входящие подключения по портам QREX должны быть разрешены.

Удалённое управление подтормаживает

  • Уменьшите частоту кадров и максимальные размеры кадра в настройках.
  • Отключите неиспользуемые функции (звук, буфер обмена, метод ввода), чтобы разгрузить процессор.

Файлы не передаются

  • Убедитесь, что Включить передачу файлов включено. Просмотр в режиме только чтения работает и без Включить изменение файлов.
  • Если загрузка не удаётся, включите также Включить изменение файлов. Иначе файловый API отвечает только на запросы чтения.

Конфиденциальность

  • Все сеансы идут напрямую между клиентом и вашим Mac. Никакого облачного ретранслятора, телеметрии и аналитики.
  • Пароль VNC, Bearer token QREX, PIN-код сопряжения и постоянный идентификатор сервера хранятся только в локальных настройках приложения.
  • Изменение файлов по умолчанию выключено. Удалённые клиенты могут только читать, пока вы явно не предоставите доступ на запись.
  • Отключить любое расширение (звук, буфер обмена, передачу файлов, метод ввода, удалённый ввод) можно в любой момент — возможность отзывается сразу же.
  • Если хотите оставить сервер доступным только на вашем Mac, укажите в качестве хоста привязки 127.0.0.1.