如何连接到我的libvirt / qemu / guests? (没有IP地址)

我inheritance了一个可靠的Ubuntu服务器的pipe理与几个虚拟服务器,也使用libvirt和QEMU的Ubuntu。 我遇到了无法连接到这些虚拟服务器/客户端的问题。

根密码是未知的物理盒子,所以我不得不通过使用Knoppix Live光盘(因为它处理LVM2和Raided磁盘/图像),并做了一个chroot和更改密码恢复(这可能已经破碎的东西)。 从那以后(巧合?)客人似乎没有IP地址。

当我查看“ifconfig vnet0”输出时,没有分配IP地址,并且RX / TX计数为0.这似乎是错误的(可能是虚拟网桥坏了,或者guest虚拟机没有运行)。

virbr0有一个IP地址,当我尝试ping一个应该分配给vnet0的IP地址时,TX计数增加。 所以虚拟networking似乎没问题。

当我做'列表 – 所有'我看到,客人正在运行。 我也看到一个'ps -eaf |的进程 grep libvirt“。 所以客人似乎存在。 (但他们正在运行?)

“关机”命令不closures客人。 但是,这可能是有效的(不适用)。 “摧毁”和“开始”的工作,但又不能确定客人是否足够运行,以达到初始化networking的目的。

我试图从virsh中“控制GuestMachine”,但是这个挂起,我想我需要在客机上运行getty。

ps的输出还显示“-vnc 127.0.0.1:9”。 但是,包括物理服务器的所有服务器都没有GUI / X。 我认为VNC只是graphics化的,所以路线可能是另一个死路一条。

在'/var/log/libvirt/qemu/GuestMachine.log'中没有任何说明。 我看到“closures”,“启动”,命令行选项和“redirect到/ dev / pts / 13(标签charserial0)”的字符设备。

这是我第一次介绍libvirt和qemu,经过一番挖掘,我不确定是否有运行guest虚拟机或如何连接到它们(没有IPAddress / ssh选项)。

一旦我可以连接到客人,我相信我可以解决IP地址问题,但没有IP地址,我无法连接到客人。

在这种情况下有没有办法连接到客人?

vnc不限于呈现GUI; 它也可以提供一个shell提示符的graphics化视图,就像您期望在独立框的文本控制台上看到的那样(例如,ALT-F2)。

例如,下面是我指向一个vnc查看器在我的本地托pipe的QEMU图像的VNC端口:

在这里输入图像说明

正如你所看到的那样,它是一个非GUI控制台,但是即使它没有IP地址(事实上它没有),我也可以愉快地在这里login。 将VNC查看器指向端口5909(将5900添加到-vnc 127.0.0.1:的参数-vnc 127.0.0.1: ,您应该没问题。

正如MadHatter所说的答案是使用VNC。 但是,在服务器上没有X,我们需要使用ssh来连接到客户端。

 ssh -v L 5901:127.0.0.1:5901 user@GuestMachine 

当您连接(在您运行ssh的机器上)到端口5901时,它将通过隧道到达GuestMachine并在环回(在GuestMachine上)连接到端口5901。

但是,对我来说这没有奏效。 VNC内置的OSX挂起,在OSX上运行的RealVNC退出。 这是我们深挖的地方,拿到Wireshark并开始查看数据包。

我不确定OSX是否在防火墙或其他一些聪明的操作上做了一些傻事,所以我实际上是在Linux上做了ssh。 那么我的全套设置是。

 OSX(with VNC) ---Linux(with ssh)======Server(no GUI)--Guest(qemu) 

在Linux上,我跟踪了networking数据包,在OSX IP地址或vnc上过滤以查看vnc数据包。

VNC RFB协议用于在VNC查看器上使用默认的“让VNC服务器select”时,看到VNC已经退出了安全阶段。 我改变了这个“偏好”,虽然在视觉上相同(非正常退出)有更多的networking数据包。

仔细观察networking数据包。 当服务器发送'服务器帧缓冲区参数'和客户端发送'客户端设置像素格式'(也'客户端设置编码'和'客户端帧缓冲区更新请求'双方做了FIN / ACK。

看着这些数据包看到服务器要求“真正的颜色标志:真”,客户端这是错误的。 返回到OSX的VNC查看器select“选项…”,然后“专家”向下滚动到ColorLevel并将其从“pal8”更改为“完整”。

毕竟,我可以连接到VNC的客人! 我可以看到qemu客人被卡在GRUB屏幕上。 卡在启动加载程序是为什么没有IP地址。 (但是原因是另一个问题…)