Acesse máquinas virtuais KVM por VNC sem encaminhamento de porta com SSH

10

É possível acessar as VMs sem precisar encaminhar a porta remota e o VNC para o host local? Eu gostaria de poder fazer o VNC no servidor KVM e ver a exibição das VMs.

Shoan
fonte

Respostas:

12

Encontrei a resposta depois de algumas pesquisas e encontrei o seguinte em /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"

Descomentei a linha acima e reiniciei libvirtdpara descobrir que ainda não conseguia acessar o VNC pela rede. Desta vez, o culpado foi iptables. No Centos, eu costumava system-config-firewall-tuipermitir o acesso ao VNC.

Shoan
fonte
Exatamente o que eu estava procurando.
Heiko Rupp
Não se esqueça de desbloquear portas com firewall no host KVM (hypervisor) para poder acessar seu servidor VNC, por exemplo firewall-cmd --permanent --add-port=5900/tcp; firewall-cmd --reload. Você pode ver essas portas abertas no host KVM (como LISTEN) na saída de um comando netstat -pantou ss -pant.
Milan Kerslager 17/03/19
depois de modificar essa opção no qemu.conf, qual serviço você reiniciaria?
Philippe Gachoud 01/10/19
1

se você faz o VNC para o host KVM, significa que ele deve ter um servidor X em execução (coisa completamente redundante a ser feita em um hipervisor, mas essa é sua escolha). Como você já tem uma área de trabalho, não há nada para impedir sua execução virt-viewerou virt-managerobter acesso diretamente a um console convidado. Por outro lado, se a VM qemu-kvm estiver sendo executada com suporte a VNC, você poderá simplesmente se conectar diretamente ao console VNC da VM.

dyasny
fonte
Não tenho um servidor X em execução no host KVM. Você pode criar VMs com saída vnc forçando o hypervisor a criar um servidor vnc para visualizar o console da VM. Isso é muito útil em sistemas operacionais não-unixy como o Windows. Mas, por padrão, o servidor vnc escuta apenas o host local.
Shoan
Isso é exatamente o que eu quis dizer na segunda parte do meu post. Acho que você poderia ter formulado a pergunta um pouco melhor, para resolver o problema do ouvinte padrão do VNC sendo apontado para localhost e não para a catchall 0.0.0.0. Este é, naturalmente, feito por razões de segurança
dyasny
Na hora de perguntar, não era óbvio o que eu estava procurando até encontrar a resposta. Você está certo, que a pergunta deveria ter sido melhor.
Shoan