从主机到来宾的 iptables 转发会干扰虚拟机之间的通信

从主机到来宾的 iptables 转发会干扰虚拟机之间的通信

我的 iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             192.168.122.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.122.0/24     anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             nginx                tcp dpt:http
ACCEPT     tcp  --  anywhere             nginx                tcp dpt:https

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc
ACCEPT     tcp  --  anywhere             anywhere

还:

$ cat /proc/sys/net/ipv4/ip_forward
1

我在 192.168.122.0/24 中有多个虚拟机,其中一个是 nginx 接收 80 和 443。除了虚拟机相互请求 :80 和 :443 时,所有网络都正常工作,即使是从 FQDN 请求(应该落在nginx)。

答案1

我不知道这是否符合“答案”,但它确实解决了我的问题。通过编辑我的 /etc/hosts 并使用内部 VM IP 覆盖公共 IP,一切都开始正常工作。我猜测是通过公共 IP 的往返过程中断了,但我并不完全确定。

相关内容