Accédez aux machines virtuelles KVM via VNC sans redirection de port avec SSH

10

Est-il possible d'accéder aux machines virtuelles sans avoir à transmettre le port distant et le VNC à l'hôte local? Je voudrais pouvoir VNC dans le serveur KVM et voir l'affichage des VM.

Shoan
la source

Réponses:

12

J'ai trouvé la réponse après quelques recherches et j'ai trouvé ce qui suit dans /etc/libvirt/qemu.conf

# VNC is configured to listen on 127.0.0.1 by default.
# To make it listen on all public interfaces, uncomment
# this next option.
#
# NB, strong recommendation to enable TLS + x509 certificate
# verification when allowing public access
#
vnc_listen = "0.0.0.0"

J'ai commenté la ligne ci-dessus et redémarré libvirtdpour constater que je n'étais toujours pas en mesure d'accéder à VNC sur le réseau. Cette fois, le coupable était iptables. Sur Centos, j'avais l'habitude system-config-firewall-tuid'autoriser l'accès VNC.

Shoan
la source
Exactement ce que je cherchais.
Heiko Rupp
N'oubliez pas de débloquer les ports pare-feu sur l'hôte KVM (hyperviseur) pour pouvoir accéder à votre serveur VNC, par exemple firewall-cmd --permanent --add-port=5900/tcp; firewall-cmd --reload. Vous pouvez voir ces ports ouverts sur l'hôte KVM (comme LISTEN) dans la sortie d'une commande netstat -pantou ss -pant.
Milan Kerslager
après avoir modifié cette option dans qemu.conf, quel service redémarreriez-vous?
Philippe Gachoud
1

si vous VNC à l'hôte KVM, cela signifie qu'il devrait avoir un serveur X en cours d'exécution (chose complètement redondante à faire sur un hyperviseur, mais c'est votre choix). Puisque vous avez déjà un bureau, rien ne vous empêche de courir virt-viewerou virt-managerd'accéder directement à une console invitée. D'un autre côté, si la machine virtuelle qemu-kvm fonctionne avec le support VNC, vous pouvez simplement vous connecter directement à la console VNC de la machine virtuelle

Dyasny
la source
Je n'ai pas de serveur X en cours d'exécution sur l'hôte KVM. Vous pouvez créer des machines virtuelles avec une sortie vnc forçant l'hyperviseur à créer un serveur vnc pour afficher la console de la machine virtuelle. Ceci est très utile dans les systèmes d'exploitation non unixy comme Windows. Mais par défaut, le serveur vnc écoute uniquement localhost.
Shoan
C'est exactement ce que je voulais dire dans la deuxième partie de mon message. Je suppose que vous auriez pu formuler la question un peu mieux, pour résoudre le problème de l'écouteur VNC par défaut pointé vers localhost et non vers le catchall 0.0.0.0. Ceci est bien sûr fait pour des raisons de sécurité
dyasny
Au moment de poser la question, ce que je cherchais n'était pas évident jusqu'à ce que je trouve la réponse. Vous avez raison, la question aurait dû être meilleure.
Shoan