我在远程数据中心有一台戴尔服务器,主机是 Ubuntu 10.04。这是包含必要虚拟化包的最小安装。没有 X,机器是无头的。
我的机器里有win2008 DVD,想远程安装。我试过:
virt-install --connect qemu:///system -n vmwin2k8 -r 1024 --disk path=server2k8.qcow2,size=50 --cdrom /dev/sr0 --vnc --noautoconsole --os-type windows --os-variant win2k8
- qcow2 映像已创建;但是,我不明白如何连接以通过 VNC 查看安装。
这是我第一次做这件事,因此可能很简单,甚至不可能。
远程我有一台装有 Putty 和 RealVNC 查看器的 Win 7 机器。
VNC 的图形输出到哪里?我是否必须在主机或其他机器上运行 VNC 服务器,然后从我的 VNC 客户端连接到它?
请让我知道或给我指出正确的方向。我已经在网上搜索了好几天,想弄清楚这应该如何工作。
谢谢!
答案1
我还有一个无头服务器在远程数据中心作为 KVM 主机运行。当我试图跟踪客户机不断变化的 VNC 端口时,我很快就感到烦恼。我的解决方案是设置一个带有桌面环境(我的情况是 Gnome)的 vncserver,并安装 virt-manager 来处理虚拟机。在我看来,这是一种更简单的管理客户机的方法。我使用了这个如何从 CentOS Wiki 中了解如何设置 VNC 服务器,在 Ubuntu 上的方法应该类似。
如果您不想这样做而只想让它与一起工作virt-install
,首先您必须弄清楚客户 VNC 服务器正在运行哪个端口。nmap 是一种快速查找服务器上端口的方法:
$ nmap -p 5900-5910 localhost
您也可以像 Joris 所说的那样指定端口,但如果有其他客人在运行,请确保选择一个空闲端口。
一旦知道了端口号,您就可以使用以下命令从桌面系统到服务器创建 SSH 隧道:
$ ssh -c blowfish-cbc -N -L 5905:localhost:5905 User@HostIP
现在,您已拥有一个隧道,可将台式机上的端口 5905 映射到服务器上的端口 5905。现在,您应该能够使用任何 VNC 客户端连接到台式机系统上的 localhost:5(或 localhost:5905),并访问服务器上 :5 上的来宾。
答案2
我不知道如果在 vnc 后不指定显示会发生什么。最好运行-vnc 127.0.0.1:0
然后 VNC 显示将在 127.0.0.1 IP 上的默认端口 (5900) 上等待您。
您可以指定一个公共 IP,但随后需要对其进行防火墙保护,或者绑定到本地主机并执行 ssh 隧道魔法。据我所知,vnc 连接是未经认证,并且有大量的扫描后台流量正在进行,脚本小子可能会在几分钟内找到它。
编辑:此外,libvirt 会为您完成此操作,您应该查看一些优秀的管理工具。