LINUX.ORG.RU

Как подключиться к виртуальной машине на KVM через VNC

 , , ,


0

2

Здравствуйте, уважаемые эксперты.

ОС: Centos 7

Установила KVM, создала машину, тоже Centos 7.

Проверяю, машина создалась и работает.

 [root@local ~]# virsh list
 ID    Имя                         Статус
----------------------------------------------------
 1     vm1                            работает

Хочу подключиться к ней,

 virsh vncdisplay vm1

127.0.0.1 

Порт на хосте в firewalld открыла 5900/tcp

 firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources:
  services: ssh
  ports: 5900/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
nmap с хоста говорит, что порт 5900 открыт
 nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2017-01-07 22:42 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000061s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 998 closed ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
5900/tcp open  vnc

Проверяю nmap с локальной сети 5900 порт - закрыт. И VNC не может подключиться к виртуалке. Подскажите, что я не так делаю?

Ну так все правильно, слушает только локалхост. если очень хочется - как вариант - пробрасывайте порт с сетевого интерфейса на локалхост

Belen ★★
()

На клиенте:

sudo dnf install virt-manager
virt-manager -c qemu+ssh://user@host/system

В роли host — сервер виртуализации.

ArcFi
()
Ответ на: комментарий от Belen

Спасибо за ответ.

Подключаться хочу по VNC-клиенту в винды, поэтому очень хочется)))

Пробросила порт в файрволе на локалхост

firewall-cmd --add-forward-port=port=5900:proto=tcp:toaddr=127.0.0.1 --permanent
Маскарадинг включила (не очень поняла тему, но может нужно, поправьте, если зря)
firewall-cmd --zone=public --add-masquerade --permanent 
Если я правильно поняла, то файрволл пробросил порт 5900 на локалхост
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources:
  services: ssh
  ports: 5900/tcp
  protocols:
  masquerade: yes
  forward-ports: port=5900:proto=tcp:toport=:toaddr=127.0.0.1

Подключаюсь vnc-клиентом - Попытка подключения была безуспешной, не получен отклик от другого компа...

В клиенте vnc указываю хост для подключения и порт: 192.168.1.101:5900 (IP-адрес верный, сижу по нему в путти).

manik207
() автор топика
Ответ на: комментарий от ArcFi

Спасибо за ответ

Сервер KVM стоит на хосте 192.168.1.101, virt-manager поставила из dnf, подключена к хосту по ssh, из него же запустила

virt-manager -c qemu+ssh://root@192.168.1.101/system 
** (virt-manager:5717): WARNING **: Could not open X display

(virt-manager:5717): Gtk-WARNING **: cannot open display: localhost:10.0

Ругается, что нет дисплея... Но ведь дисплея действительно нет, сентос еще устанавливать надо...

manik207
() автор топика
Ответ на: Спасибо за ответ. от manik207

192.168.1.101:5900

а сокет открыт и ждет соединения?

#netstat -tulpan | grep 5900
в конфиге вм нужно указать на каком адресе слушать. По умолчанию это 127.0.0.1 .

ving2
()
Ответ на: Спасибо за ответ. от manik207

И можно ничего не пробравсывать, а просто отредактировать конфиг виртуалки примерно так:

virsh edit vm1
...
    <graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
...

ArcFi
()
Ответ на: комментарий от ArcFi

Спасибо! Получилось подключиться и установить ОС. Сделала фактически, копи-пастом, поняла мало.

Можете на пальцах пояснить?

Я понимаю, что есть хост-машина, которая у меня под IP 192.168.1.101, на ней я установила виртуальную машину, сейчас это ХР, еще будет Centos. На этих машинах открыт порт 5900 и далее +1 к каждой последующей. И запросы по этому порту виртуальная машина принимает только с локального хоста (это по дефолту). Через проброс портов в ssh с помощью VcXsrv и virt-manager, запускаю панель управления виртуальными машинами. При установке машины сразу указываю соединение Мост с действующим сетевым интерфейсом и после установки подключаюсь по RDP. Больше ничего не надо.

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

manik207
() автор топика
Ответ на: комментарий от manik207

Да, примерно так.
QEMU/KVM биндит порт на самом сервере виртуализации, поэтому доступ через SPICE/VNC не зависит от статуса загрузки виртуалки и наличия средств удалённого доступа на ней.
Мостовое сетевое подключение довольно удобно для интеграции виртуалок в существующую инфраструктуру.
Порт, доступ к нему и иные парраметры можно задать сразу при создании виртуалки:

virt-install ... --graphics vnc,listen=0.0.0.0,port=5905
man virt-install

ArcFi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.