![从虚拟机到主机的网络访问](https://linux22.com/image/726336/%E4%BB%8E%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%B0%E4%B8%BB%E6%9C%BA%E7%9A%84%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE.png)
我在 Ubuntu 主机上运行了一个简单的基于 KVM 的虚拟机。虚拟机已连接到 NAT 虚拟网络。它可以从主机访问,但无法连接回主机。
从虚拟机,我可以 ping 主机 IP,但无法运行 traceroute 或 ssh 到主机。不过,我可以 traceroute 到本地 LAN 上的主机网关 IP(路由器 IP)。
主机/虚拟机上没有运行防火墙/iptables,而是net.ipv4.ip_forward = 1
在主机上设置。为了让虚拟机访问主机,我还缺少什么?
谢谢。
答案1
根据我的经验,在 KVM 中设置主机 <-> 客户机通信的最佳方法是在专门用于此目的的 VM 上设置第二个 NIC。这里有一篇很好的文章解释了细节:
实际上,它就像设置使用 macvlan 的第二个网络或甚至将 VM 直接放在与主机相同的网络上的桥接网络一样简单(取决于您如何配置网络以及如何锁定 VM 对主机网络的访问,这可能对您有用,也可能没用)。
将第二个 NIC 添加到 VM 后,在客户操作系统中配置一个静态 IP,然后使用该 IP 进行主机 <-> 客户通信。
当然,您需要确保不仅允许主机上的流量,还允许来宾操作系统(在虚拟机中)上的流量。