Гид по технологиям

Доступ к виртуальной машине по VNC в Ubuntu

• 7 min read • Виртуализация • Обновлено 22 Nov 2025
Доступ к виртуальной машине по VNC в Ubuntu
Доступ к виртуальной машине по VNC в Ubuntu

Доступ к виртуальной машине по VNC

Виртуальные машины (VM) удобны для работы на разных платформах и для безопасного тестирования. Если нужен графический интерфейс, по умолчанию вы обычно привязаны к хосту-hipervisoru. Но вы можете расшарить рабочий стол виртуальной машины по сети через VNC. Это позволит подключаться к VM с любого компьютера в локальной сети и работать с ней так, как будто вы сидите за её экраном.

VNC — это протокол общего удалённого рабочего стола. Он передаёт графику по сети, как Remote Desktop в Windows. В этой инструкции мы используем Ubuntu и TigerVNC. При желании вы можете заменить компоненты на альтернативные инструменты.

Что потребуется

  • Сервер под управлением Ubuntu с KVM/libvirt, доступ по сети.
  • Клиент с Ubuntu или другими ОС и установленным VNC-клиентом (tigervnc, vncviewer и т. п.).
  • ISO-образ гостевой ОС для установки.
  • Права sudo на сервере для настройки сетевого моста и установки пакетов.

Важное: изменения сетевых настроек лучше выполнять локально или через KVM-панель — не делайте это только по SSH, если не уверены, что сможете восстановить подключение.

Установка пакетов

Ниже показаны базовые пакеты. На сервере запускается VM; на клиенте — программа для просмотра рабочего стола.

На сервере

sudo apt update
sudo apt install qemu-kvm libvirt-bin bridge-utils

На клиенте

sudo apt update
sudo apt install tigervnc-viewer

Примечание: пакетный набор может отличаться в зависимости от версии Ubuntu. В более новых версиях libvirt-пакеты могут называться иначе; при сомнении проверьте официальную документацию дистрибутива.

Настройка сетевого моста

Сетевой мост делает VM видимой в вашей локальной сети как отдельный узел. Это удобно для прямых подключений и тестирования сетевых сервисов.

  1. Узнайте имя сетевого интерфейса:
ip a
  1. Откройте файл /etc/network/interfaces с root-правами и добавьте конфигурацию моста. Пример:
auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
    bridge_ports eth0

Замените eth0 на имя вашего физического интерфейса. Если у вас несколько интерфейсов, перечислите их через пробел.

Важное: перезагрузка требуется для применения изменений. Не выполняйте эту процедуру по SSH без плана отката.

Создание виртуальной машины

Вы можете использовать GUI-инструменты (virt-manager) или командную строку. Ниже приведён пример команды virt-install. Обратите внимание на пробелы и аргументы — они важны.

Пример создания VM с именем ubuntuArtful:

sudo virt-install \
  --name ubuntuArtful \
  --memory 4096 \
  --vcpus 6 \
  --disk size=20 \
  --cdrom /home/user/Downloads/ubuntu-17.10.1-desktop-amd64.iso \
  --graphics vnc,listen=0.0.0.0 \
  --noautoconsole \
  --bridge br0

Пояснения к ключам:

  • –name — имя виртуальной машины.
  • –memory — объём ОЗУ в мегабайтах.
  • –vcpus — число виртуальных ядер CPU.
  • –disk size=20 — размер диска в гигабайтах.
  • –cdrom — путь к ISO-образу установки гостевой ОС.
  • –graphics vnc,listen=0.0.0.0 — включение VNC и прослушивание на всех интерфейсах (см. раздел безопасность).
  • –noautoconsole — не присоединять консоль автматически.
  • –bridge br0 — подключение виртуального интерфейса к мосту.

Если вы предпочитаете GUI, установите virt-manager и создайте VM через него. После создания проверьте настройки графики и сети в XML-конфигурации libvirt.

Подключение по VNC

Подключение к виртуальной машине через VNC

На клиенте откройте TigerVNC (в некоторых дистрибутивах он называется vncviewer). В окне введите IP-адрес сервера и порт VNC (по умолчанию обычно :0, :1 и т. п.). Пример подключения:

vncviewer 192.168.1.100:1

Установка Ubuntu через VNC

После подключения откроется окно с консолью установки виртуальной машины. Используйте боковые контролы или меню клиента для изменения размера окна и других параметров. Когда установка завершится, вы сможете управлять гостевой системой как обычно.

После выключения гостя вы можете стартовать VM и снова подключаться по VNC:

sudo virsh start ubuntuArtful

Безопасность и ограничение доступа

VNC по умолчанию не шифрует трафик. Открыв VNC на 0.0.0.0, вы рискуете безопасностью. Рекомендую следующие меры:

  • Не слушать на всех интерфейсах. Используйте listen=127.0.0.1 и туннелируйте через SSH.
  • Настройте пароль VNC (через параметры гостевой графики или отдельные инструменты: x11vnc/tigervnc-standalone-server).
  • Блокируйте порт VNC в брандмауэре UFW/iptables и открывайте доступ только по VPN или SSH.
  • Для корпоративной среды используйте TLS/SSL или шлюз (Guacamole/NoVNC + HTTPS).

Пример безопасного запуска через SSH-туннель с клиента:

ssh -L 5901:localhost:5901 user@192.168.1.100
vncviewer localhost:1

Альтернатива: настройте VNC-сервер так, чтобы он слушал только на интерфейсе 127.0.0.1 и применяйте SSH-туннелирование.

Тестирование и отладка

Если подключение не удаётся:

  • Проверьте, слушает ли процесс VNC на нужном порту: sudo netstat -tulpen | grep vnc
  • Убедитесь, что firewall не блокирует порт 5900+: sudo ufw status
  • Проверьте, что bridge br0 поднят и имеет IP: ip a show br0
  • Посмотрите логи libvirt: journalctl -u libvirtd или /var/log/libvirt/*
  • При проблемах с разрешением экрана или производительностью попробуйте уменьшить глубину цвета или использовать SPICE.

Частые ошибки:

  • Неверные параметры virt-install (слитые без пробелов). Всегда используйте пробелы между ключом и значением.
  • Перезапуск сети по SSH без резервного доступа — потеря соединения.

Роли и контрольные списки

Список для администратора сервера:

  • Установить qemu-kvm и libvirt.
  • Настроить сетевой мост br0 и протестировать локальную сеть.
  • Создать VM с нужными ресурсами и включить графику.
  • Ограничить слушание VNC и настроить брандмауэр.
  • Настроить резервное копирование дисков VM.

Список для пользователя клиента:

  • Установить tigervnc-viewer или совместимый клиент.
  • Получить IP и порт VNC от администратора.
  • Подключиться через SSH-туннель, если требуется.
  • Проверить масштаб и ввод мыши/клавиатуры в клиенте.

Критерии приёмки

  • VM успешно стартует и отвечает на ping по адресу в локальной сети.
  • Графическая консоль доступна через VNC и позволяет завершить установку ОС.
  • Подключение по SSH-туннелю работает, при этом VNC не слушает на внешнем интерфейсе.
  • Порты VNC закрыты для внешнего доступа без VPN.

Когда это не подходит

  • Если вам нужна шифрованная и масштабируемая веб-консоль для множества пользователей, лучше рассмотреть Guacamole или RDP через VPN.
  • Если требуется низкая задержка графики или аппаратное ускорение, VNC может оказаться недостаточно быстрым. Рассмотрите SPICE или проприетарные решения.

Альтернативы и дополнительные подходы

  • virt-manager — графический менеджер виртуальных машин.
  • SPICE — альтернатива VNC с лучшей поддержкой видео и перенаправлением устройств.
  • NoVNC + websockify — веб-доступ к VNC через браузер и HTTPS.
  • RDP — если гостевая ОС поддерживает RDP и вы работаете из Windows.
  • X11 forwarding по SSH — подходит для отдельных X-приложений, но не для полного рабочего стола.

Мини-методология настройки (шаги 1–6)

  1. Подготовьте сервер и клиент, установите пакеты.
  2. Настройте сетевой мост и проверьте сетевую видимость.
  3. Создайте VM через virt-install или virt-manager, включите графику.
  4. Запустите VM и убедитесь, что VNC-сервер запущен.
  5. Настройте безопасный доступ (SSH-туннель, брандмауэр, пароль).
  6. Документируйте настройки и создайте резервные копии.

Короткий план отката и восстановления

  • Если после настройки моста сеть пропала, верните прежний файл /etc/network/interfaces из резервной копии и перезагрузите.
  • Если VNC раскрылся в интернет, немедленно остановите службу VNC или смените listen на localhost и включите брандмауэр.

Часто задаваемые вопросы

Как узнать, на каком дисплее (:0, :1) работает VNC?

Посмотрите конфигурацию VNC-сервера или используйте ss/netstat для портов 5900+. Например, порт 5901 соответствует дисплею :1.

Можно ли подключаться по VNC через интернет?

Можно, но это небезопасно без VPN или шифрования. Рекомендуется использовать VPN или SSH-туннель.

Как задать пароль для VNC?

Зависит от сервера VNC. Для tigervnc установите пароль с помощью vncpasswd или задайте его в конфигурации сервера.

Примеры команд для быстрого старта

Запуск VM из примера выше:

sudo virt-install \
  --name ubuntuArtful \
  --memory 4096 \
  --vcpus 6 \
  --disk size=20 \
  --cdrom /home/user/Downloads/ubuntu-17.10.1-desktop-amd64.iso \
  --graphics vnc,listen=127.0.0.1 \
  --noautoconsole \
  --bridge br0

Подключение через SSH-туннель на клиенте:

ssh -L 5901:localhost:5901 user@server-ip
vncviewer localhost:1

Резюме

Вы можете выполнить удалённый доступ к графическому рабочему столу виртуальной машины по VNC на Ubuntu, установив KVM/libvirt на сервере и tigervnc на клиенте. Настройка сетевого моста делает VM видимой в локальной сети. Не забывайте о безопасности: лучше слушать VNC на localhost и использовать SSH-туннелирование или VPN. Документируйте конфигурацию и проверяйте доступность по контрольным критериям.

Важное: перед изменениями сети сделайте резервные копии конфигураций и имейте альтернативный канал доступа к серверу.

FAQ

Q: Какой порт использует VNC?

A: По умолчанию VNC использует порты 5900+. Дисплей :0 — порт 5900, :1 — 5901 и т.д.

Q: Можно ли использовать системный брандмауэр для ограничения доступа?

A: Да. Используйте ufw/iptables для блокировки портов и разрешайте доступ только с доверенных адресов или через VPN.

Q: Поддерживает ли VNC звук?

A: Оригинальный VNC не передаёт звук. Для звука используйте дополнительную аудиопередачу (PulseAudio через сеть, RTP и т. п.) или другие протоколы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро