virt-install 忽略 vnc 端口/监听?

virt-install 忽略 vnc 端口/监听?

我正在尝试在远程主机上创建 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,因此看起来端口被视为某种偏移量?!无论如何 - listen 根本没有被使用,并且能够从本地主机连接不是我现在想要的。

我究竟做错了什么?

答案1

您没有做错任何事。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。

相关内容