Простой VNC-доступ к виртуальным серверам из браузера

Подключение к виртуальным серверам через браузер и HTML5

Настройка и включение VNC

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

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

Изменим настройки виртуальной машины, включив VNC-доступ. Выбираем виртуальную машину –> Edit Settings –> Options –> General –> Configuration Parameters и добавляем несколько параметров:

RemoteDisplay.vnc.enabled = [true|false] - включаем vnc
RemoteDisplay.vnc.port = [port #] - порт, на котором виртуальная машина будет доступна
RemoteDisplay.vnc.password = [password] - пароль к VNC

Configuration Parameters

Configuration Parameters

Если используется ESXi версии 5 и выше, то необходимо открыть порт на фаерволе гипервизора. Подключаемся к гипервизору по SSH и создаем новый xml файл, с описанием правила для фаервола в /etc/vmware/firewall:

<!--rewall configuration information for VNC -->
<ConfigRoot>
<service>
<id>VNC</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>5901</port>
</rule>
<rule id='0001'>
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>
<begin>0</begin>
<end>65535</end>
</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>

После этого обновляем конфиг фаервола и проверяем, появилось ли правило.
(Также это можно сделать из vSphere клиента)

esxcli network firewall refresh

Проверяем появилось ли правило

Могут возникнуть трудности после перезагрузки ESXi, если это произойдет, то нового правила не будет. Самое простое решение скопировать XML-файл в хранилище (storage), к которому у хоста есть доступ, а на самом хосте добавить в /etc/rc.local:

cp location-of-xml-file /etc/vmware/firewall
esxcli network firewall refresh

Теперь к виртуальным машинам есть VNC доступ. Далее будем делать одну точку доступа ко всем серверам, используя Guacamole

Установка и настройка Guacamole

С помощью Guacamole можно получить доступ к консоли серверов из любого браузера, который поддерживает: HTML5 и AJAX

Guacamole умеет работать с VNC и RDP. Установку можно производить на Debian, Ubuntu, CentOS

Установка Guacamole

Установим необходимые компоненты для корректной работы.

yum -y install guacd libguac-client-*
systemctl enable guacd

В Fedora/Centos установим веб-приложение Guacamole, оно может потянуть за собой Tomcat и прочие Java-зависимости.

yum -y install guacamole
systemctl enable tomcat

Затем производим конфигурацию в /etc/guacamole/
Подробнее о конфигурации

Запускаем сервисы

systemctl start guacd
systemctl start tomcat

По умолчанию веб-приложение доступно в браузере по адресу:
http://localhost:8080/guacamole/

Login guacamole

Схема аутентификации по умолчанию читает все настройки из файла конфигурации /etc/guacamole/user-mapping.xml

<user-mapping>
<authorize username="DevUser" password="devPassword">
<connection name="TestServer1">
<protocol>vnc</protocol>
<param name="hostname">192.168.2.1</param>
<param name="port">5901</param>
<param name="password">VNCPASS</param>
</connection>
<connection name="TestServer1">
<protocol>vnc</protocol>
<param name="hostname">192.168.2.2</param>
<param name="port">5902</param>
<param name="password">VNCPASS</param>
</connection>
</authorize>
</user-mapping>
  • Hostname — это адрес вашего esxi хоста;
  • Password — пароль для VNC.

Теперь входим под пользователем DevUser и подключаемся к виртуальным серверам.

Поделиться Комментарии