我的 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 的往返过程中断了,但我并不完全确定。