客户虚拟机访问主机超时

客户虚拟机访问主机超时

我用虚拟管理器管理我的虚拟机。我想让虚拟机 (Windows) 与主机 (GNU/Linux) 进行通信。

我使用默认网络接口,即 NAT 模式下的桥接器,其网络地址为192.168.122.0/24.当我在听主持人192.168.122.1在港口12345,我使用 netcat 检查我的客户机:

nc -vz 192.168.122.1 12345

我得到以下答案:

Warning: forward host lookup failed for hostname: h_errno 1101: HOST_NOT_FOUND
hostname [192.168.122.1] 12345 (?): TIMEOUT

而且我在任何界面上都会得到相同的答案。

但如果我在外部网络网关上执行同样操作192.168.0.1,我得到:

gateway.lan [192.168.0.1] 12345 (?) open

我该如何修复它?

答案1

我使用默认网络接口,即 NAT 模式下的网桥,网络地址为 192.168.122.0/24。当我在端口 12345 上监听主机 192.168.122.1 时,... 我收到警告:主机名的正向主机查找失败:

第一的:尝试在桥接模式下将所有内容放在一个子网上。这通常很有效。

第二: 如果您希望恢复到 NAT,请尝试使用 IP 寻址进行主机和客户机之间的通信。我就是这么做的。名称寻址更复杂。

就这一点而言,我确实更喜欢 Bridged。

答案2

在 Red Hat 发行版下,使用的默认防火墙是firewall-cmd。为了能够从客户机访问主机,只需通过防火墙打开特定端口:

sudo firewall-cmd --zone=libvirt --add-port=12345/tcp

其中 libvirt 是使用 libvirt 库(例如 virt-manager 或 cockpit)的虚拟机的区域网络。

我没有检查,但我想象在 debian 发行版下,例如,只需编辑 nftables 防火墙。

相关内容