libvirtd 和过滤端口

libvirtd 和过滤端口

我是新来的virt-manager

virbr0配置具有 2 个应该能够通信的虚拟机的虚拟网络(新接口)后,我发现大多数端口都被过滤了。

例如,两个节点可以通过端口 22 相互访问,但对于其他端口,例如高于 9000 的端口,我会得到一个no route to host.

尝试连接到主机 192.168.122.125 上打开的端口 80,这是我使用 tcpdump 得到的结果:

07:50:55.363767 IP 192.168.122.14.54483 > 192.168.122.125.80: Flags [S], seq 21091821, win 14600, options [mss 1460,sackOK,TS val 313139 ecr 0,nop,wscale 7], length 0
07:50:55.364204 IP 192.168.122.125 > 192.168.122.14: ICMP host 192.168.122.125 unreachable - admin prohibited, length 68

为什么是这样?是否可以删除一些过滤器,以至少允许节点能够在各种端口上进行通信?

答案1

如果您无法访问另一个虚拟机,有两种可能性:

  1. 目标系统阻止与 Netfilter ( ) 的连接iptables
  2. libvirt 本身阻止虚拟化 LAN(不是指 VLAN),请参阅http://libvirt.org/formatnwfilter.html

在你的情况下,这应该是一个 Netfilter 问题。您tcpdump也可以通过在目标主机上运行来确定这一点。您应该在那里看到相同的数据包。

解决方案是调整iptables配置,但这与 Netfilter 无关,而是与您的发行版相关。因此,如果您对此有疑问,您应该将其作为一个新问题。

相关内容