KVM использует VNC сервер для подключения к консоли виртуальной машины. Каждая машина получает свой порт, начиная с 5900: первая запущенная на сервере будет отвечать на адресе 127.0.0.1:5900, вторая — 127.0.0.1:5901 и так далее.
По-умолчанию VNC принимает подключения только через локальный адрес — 127.0.0.1. Но иногда удобнее сделать так, чтобы к консоли виртуальной машины можно было подключиться с другого компьютера.
Настройка VNC для доступа к виртуальным машинам KVM
Чтобы настроить доступ к виртуальной машине с использованием VNC, отредактируйте конфигурацию виртуалки.
Для этого нужно изменить настройки виртуальной машины.
virsh edit <vm-name>
Вам нужно изменить секцию graphics.
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='12345'> <listen type='address' address='0.0.0.0'/> </graphics>
Приведенный пример будет принимать подключения на всех внешних IP адресах KVM сервера, запрашивая в качестве пароля 12345. Если удалить параметр passwd, то VNC не будет запрашивать пароль при подключении к консоли виртуальной машины.
Как определить VNC порт для подключения к виртуальной машине
Чтобы определить, на каком порту работает VNC сервер для конкретной виртуальной машины, если вы не задали этот порт явно в конфигурации, можно сделать следующее.
Выведите список всех выполняемых виртуальных машин:
$ sudo virsh list Id Name State ---------------------------------- 1 srv1 running 45 srv2 running
Теперь выполните команду, которая покажет номер VNC сервера для нужной виртуальной машины:
$ sudo virsh vncdisplay srv2 :0
Вообще эта команда должна выдать IP адрес и порт для подключения по VNC к указанному виртуальному серверу. На деле команда vncdisplay покажет корректное значение только если у вас не указан конкретный порт в настройках виртуальной машины.
К полученному числу вам нужно добавить 5900, чтобы получить локальный порт, на котором VNC сервер принимает подключения.
В приведенном примере нужно подключиться на адрес 127.0.0.1:5900, чтобы получить VNC доступ к srv2
Как подключиться к VNC на локальном адресе
Если вы не указали иное, VNC сервер, через который вы получаете доступ к виртуальным машинам KVM, принимает подключения на адресе 127.0.0.1.
Если гипервизор запущен на удаленном сервере, то как правило вы будете подключаться к нему используя SSH клиент.
Один из вариантов, чтобы при этом подключиться через VNC к запущенной виртуальной машине — переадресация портов SSH клиентом.
Для того, чтобы виртуальные сервера работали в нашей реальной локальной сети на хост-машине создаем сетевой мост.