https://pve.proxmox.com/wiki/VNC_Client_Access
Все что написано тут может не работать с текущей версией Proxmox 5.x
Для того чтобы можно было подключаться к консолям виртуалок не только из web-интерфейса надо сделать вот что:
1. Установить хосте proxmox openbsd-inetd:
aptitude install openbsd-inetd
2. Получаем список машин:
qm list root@homenet-home10 /etc # qm list VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 101 freenas stopped 1024 32.00 0 102 debpbx running 512 0.00 573304 105 winxp stopped 512 15.01 0 7012 ltsp-ldap-openfire-KVM running 512 9.00 495870 7016 fbc16-kvm running 512 8.00 462697 7159 win7 stopped 2048 0.00 0 27014 ltsp-term-KVM stopped 512 0.00 0
3. Редактируем /etc/inetd.conf и добавляем туда порты для каждой машины, которую мы хотим видеть не только из web-интерфейса:
port kvm 59055 stream tcp nowait root /usr/sbin/qm qm vncproxy 105 59058 stream tcp nowait root /usr/sbin/qm qm vncproxy 7159
4. Перезапускаем openbsd-inetd
/etc/init.d/openbsd-inetd restart
5. Проверяем что получилось:
telnet home10 59058 # home10 - это имя сервера proxmox Trying 192.168.1.10... Connected to home10.fantinibakery.com. Escape character is '^]'. RFB 003.008
Для того чтобы выйти нажимаем Ctrl+] и затем вводим exit.
6. На момент написания заметки нормально работал только один клиент - это tigervnc. (Клиент должен поддерживать TLS vencrypt)
Для подключения надо указывать имя клиента в формате: root@pam.
Подключение к консолям VNC со старыми клиентами не поддерживающими TLS vencrypt, а поддерживающими только и plain auth (VNC 2.0)
Без пароля консоль не рекомендуется! Но если надо, то вот:
1. Создайте машину и запоните её KVM ID (номер - 100, 101 и т.д)
2. В консоли сервера отредактируйте файл:
nano /etc/pve/local/qemu-server/(KVM ID).conf
4. В самом конце дописать следующее:
args: -vnc 0.0.0.0:100
Эта строка заставляет KVM создать VNC-консоль на адресе 0.0.0.0 и порту 5900 + номер порта. В данном случае - на порту 5900+100 = 6000.
Теперь запускаем наш любимый клиент и подключаемся к порту 6000
Для того чтобы задать пароль - ставим его через запятую после адреса:
args: -vnc 0.0.0.0:100,password
7. Для контейнеров openvz надо использовать vncterm.
vncterm [VNCOPTS] [-c command [ARGS]] #example: vncterm -c vzctl enter VMID vncterm -rfbport 5900 -passwdfile FILE -timeout 20 -c vzctl enter 104
Discussion