Firewall
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
為什麼是這樣?是否可以刪除一些過濾器,至少允許節點能夠在各種埠上進行通信?
如果您無法訪問另一個 VM,則有兩種可能性:
- 目標系統阻止與 Netfilter (
iptables
) 的連接。- libvirt 本身會阻塞虛擬 LAN(不是 VLAN),請參閱http://libvirt.org/formatnwfilter.html
在您的情況下,它應該是 Netfilter 問題。您也可以通過
tcpdump
在目標主機上執行來確定這一點。你應該在那裡看到相同的數據包。解決方案是調整
iptables
配置,但這與 Netfilter 無關,而是與您的發行版有關。因此,如果您對此有疑問,您應該提出一個新問題。