Akses mesin virtual KVM melalui VNC tanpa port forwarding dengan SSH

10

Apakah mungkin untuk mengakses VM tanpa harus meneruskan port jarak jauh dan VNC ke localhost? Saya ingin dapat VNC ke server KVM dan melihat tampilan VM.

Shoan
sumber

Jawaban:

12

Saya menemukan jawabannya setelah beberapa pencarian dan menemukan yang berikut di /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"

Saya menghapus komentar baris di atas dan memulai kembali libvirtduntuk menemukan bahwa saya masih tidak dapat mengakses VNC melalui jaringan. Kali ini pelakunya adalah iptables. Di Centos, saya biasa system-config-firewall-tuimengizinkan akses VNC.

Shoan
sumber
Persis apa yang saya cari.
Heiko Rupp
Jangan lupa untuk membuka blokir port firewall pada host KVM (hypervisor) untuk dapat mengakses server VNC Anda, misalnya firewall-cmd --permanent --add-port=5900/tcp; firewall-cmd --reload. Anda dapat melihat port-port ini terbuka pada host KVM (seperti LISTEN) pada output dari perintah netstat -pantatau ss -pant.
Milan Kerslager
setelah memodifikasi opsi itu menjadi qemu.conf layanan apa yang akan Anda restart?
Philippe Gachoud
1

jika Anda VNC ke host KVM, itu berarti harus menjalankan server X (benar-benar berlebihan untuk dilakukan pada hypervisor, tapi itu pilihan Anda). Karena Anda sudah memiliki desktop, tidak ada yang menghentikan Anda dari menjalankan virt-vieweratau virt-manageruntuk mendapatkan akses ke konsol tamu secara langsung. Di sisi lain, jika VM qemu-kvm berjalan dengan dukungan VNC, Anda dapat langsung terhubung ke konsol VNC VM secara langsung

dyasny
sumber
Saya tidak memiliki server X yang berjalan pada host KVM. Anda dapat membuat VMs dengan output vnc yang memaksa hypervisor untuk membuat server vnc untuk melihat konsol VM. Ini sangat berguna di OS non-unixy seperti Windows. Tetapi secara default server vnc hanya mendengarkan localhost.
Shoan
Inilah yang saya maksud di bagian kedua dari posting saya. Kira Anda bisa merumuskan pertanyaan sedikit lebih baik, untuk mengatasi masalah pendengar VNC default yang diarahkan ke localhost dan bukan ke catchall 0.0.0.0. Ini tentu saja dilakukan untuk alasan keamanan
dyasny
Pada saat bertanya, tidak jelas apa yang saya cari sampai saya menemukan jawabannya. Anda benar, bahwa pertanyaannya seharusnya lebih baik.
Shoan