如何通过 ssh 从 mac 主机连接 KVM 来宾虚拟机?

How to connect KVM guest vm from mac hosts by ssh?

我想在 Macbook 上使用 KVM。所以我启动 kvm 所做的是:

qemu-system-x86_64 -m 2G ./bastion-rhel7.qcow2 -accel hvf

虚拟机启动正常。但是我不能 ssh root@10.0.2.15 这是默认的 vm 网络接口。 它只包含一个默认的 vm 接口,看起来像这样:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic ens3
       valid_lft 86353sec preferred_lft 86353sec
    inet6 fec0::caa4:e2ac:1cf9:230e/64 scope site noprefixroute dynamic
       valid_lft 86354sec preferred_lft 14354sec
    inet6 fe80::393b:a23c:2981:6282/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

阅读 this article 后,我知道如果我使用 virtualbox 来解决这个问题,我可以连接 host-only 网络。

这让我觉得,如果我可以从 qemu-system_x86_64 命令行为 KVM 附加主机专用网络,那么我就可以通过 ssh 连接到我的 kvm 来宾。但我不知道这对 kvm 是否可行。

感谢任何意见和解决方案,我只想通过 ssh 从 mac 主机连接来宾虚拟机。

(我的mac书只有wifi连接,所以我认为“桥接”模式对我来说不是一个选项。)

您正在使用的默认 QEMU 网络类型是“用户模式”网络。访客 VM 在此设置中看到的 IP 地址在 VM 外部不可见(这有点像 VM 在 NAT 路由器后面)。因此,虽然来宾可以向外连接,但您无法连接到来宾,除非您在 QEMU 命令行上配置端口转发。 (QEMU wiki page on networking 包括一个 SSH 端口的语法示例。)

如果您需要来宾拥有一个对世界其他地方(包括主机)公开可见的 IP 地址,您需要使用不同的网络后端,例如“tap”;不过,设置起来要复杂得多。