Linux

virt-install 忽略 vnc 埠/監聽?

  • January 16, 2014

我正在嘗試在遠端主機上創建 kvm 機器。

主機正在執行 debian 測試。

確實使用了這個命令:

virt-install --name debian-test \
   --os-type=linux \
   --os-variant=debianwheezy \
   --cdrom /media/media/software/iso/debian-testing-amd64-netinst-2014-01-16.iso \
   --graphics vnc,listen=0.0.0.0,port=20001 \
   --disk pool=default,format=raw,size=20 \
   --ram 2048 \
   --vcpus=2 \
   --network bridge=virbr0 \
   --hvm \
   --virt-type=kvm

但是當它被創建時,它會監聽:

=# virsh domdisplay debian-test
vnc://localhost:14101

當我創建 port=40001 時,它正在偵聽埠 34101,所以看起來該埠被視為某種偏移量?!無論如何 - 根本沒有使用聽,並且能夠從本地主機連接不是我現在想要的。

我究竟做錯了什麼?

你沒有做錯什麼。VNC 協議指定“埠”實際上不是埠,而是與預設 VNC 埠 5900 的偏移量。

因此localhost:0將連接到埠 5900,localhost:1將連接到埠 5901,等等。


預設情況下,libvirt 僅將 VNC 偵聽器綁定到 localhost,無論您在命令行中指定什麼。要更改這一點,您需要在/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"

確保在進行此更改後重新載入或重新啟動 libvirtd。

引用自:https://serverfault.com/questions/567716