我正在使用虚拟网络“默认”从主机构建虚拟机客户端:virt-manager kvm 中的 NAT 设置,该设置使用主机的网卡创建桥接 (virbr0)。虚拟机客户端接收默认 IP 192.168.122.x。我的局域网上的其他机器是 192.168.0.x。客户端虚拟机可以正常连接到局域网上的其他主机和互联网,但我似乎无法从其他主机 (192.168.0.x) 连接到我的虚拟机客户端 (192.168.122.x)。有人知道为什么吗?
我已经找到了使用 macvtap 解决此问题的方法,但我遇到了相反的问题,即能够从 LAN 上的其他主机连接到 vm 客户端,但不能从托管 vm 客户端的主机连接到 vm 本身......
答案1
为了使 Bridge 网络在主机和虚拟机之间工作,您必须分配与主机 192.168.0.x 相同的 IP 地址范围
在您的 KVM 桥接网络设置中更改此项,以使其正常工作。
答案2
在 NAT 设置中,您的 VM 仅与主机共享一个专用网络。
这类似于一个具有一个网关服务器的网络,所有工作站都通过该网关服务器访问互联网 - 但工作站也无法从互联网访问。
您可以使用主机系统上的入站 NAT 规则来使虚拟机的单个端口可用。
# untested
iptables -t nat -A PREROUTING -p tcp --dport 10022 -j DNAT --to 192.168.122.x:22
此规则将使访客的 SSH 通过端口可用10022
在您的主机系统上。