我正在尝试在远程主机上创建 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。