我是新来的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
如果您无法访问另一个虚拟机,有两种可能性:
- 目标系统阻止与 Netfilter ( ) 的连接
iptables
。 - libvirt 本身阻止虚拟化 LAN(不是指 VLAN),请参阅http://libvirt.org/formatnwfilter.html
在你的情况下,这应该是一个 Netfilter 问题。您tcpdump
也可以通过在目标主机上运行来确定这一点。您应该在那里看到相同的数据包。
解决方案是调整iptables
配置,但这与 Netfilter 无关,而是与您的发行版相关。因此,如果您对此有疑问,您应该将其作为一个新问题。