VNC
Virtual Network Computing · RFB · 1998
Что это
VNC (Virtual Network Computing) — протокол удалённого доступа к рабочему столу. Разработан в ORL (Olivetti Research Lab), Кембридж, в 1998 году. Работает по протоколу RFB (Remote Framebuffer). По умолчанию порты 5900+ (5900 — display :0, 5901 — display :1 и т.д.).
Как работает
Сервер посылает клиенту готовую картинку экрана (framebuffer). Клиент шлёт назад события мыши и клавиатуры. Никакой X11-магии — тупо пиксели.
- Плюс: работает поверх чего угодно — любая ОС, любой рабочий стол
- Плюс: клиент может быть без графики (кроме отображения)
- Минус: медленно на плохом канале, tearing, лаг
Клиенты и серверы
- TigerVNC — популярный open-source
- TightVNC — тоже open, есть под Windows
- RealVNC — коммерческий (это те, кто придумал VNC)
- UltraVNC — Windows-only, дополнительные фичи
- x11vnc — экспорт существующей X11-сессии
- noVNC — VNC-клиент прямо в браузере (HTML5+WebSocket)
Консольный VNC у хостера
Console VNC / KVM Console — практически все VPS-хостеры дают доступ к консоли машины через веб-интерфейс. Это ты видишь физический экран сервера — то же, что было бы при подключении монитора:
- Виден BIOS/UEFI, загрузчик GRUB
- Работает даже если SSH сломан
- Можно восстановить пароль root, изменить сеть, войти в single-user mode
- Обычно доступ через noVNC (браузер) или скачиваемый VNC-клиент
Провайдеры вроде Hetzner, TimeWeb, RUVDS, Selectel все дают такую консоль.
Безопасность
Классический RFB — плохо шифрован:
- DES-based challenge-response (взламываемо)
- Пароль ≤ 8 символов (обрезка!)
- Данные экрана и клавиатуры — в открытом виде после handshake
Как правильно использовать:
- SSH-туннель —
ssh -L 5901:localhost:5901 server - Только bind на 127.0.0.1 на сервере
- Или TLS-обёртка (TigerVNC поддерживает)
- Не публиковать VNC-порт в интернет — сканеры находят за минуты
Альтернативы
- RDP (Windows) — свой протокол Microsoft, гораздо быстрее и умнее
- X2Go / NX — умный ремоут для Linux-десктопа
- Apache Guacamole — веб-клиент для VNC/RDP/SSH
- Sunshine + Moonlight — низкая задержка, для геймплея
- Parsec — то же, коммерческое