了解连接失败的原因

了解连接失败的原因

编辑:出现此问题的原因是我们的机器没有外部 IP 地址,因此传出的流量要经过 Cloud NAT,而 Cloud NAT 的配置有误(每个虚拟机的最小连接数)

我在使用 GCP 机器连接到外部 HTTP 服务器时遇到了问题。下面是来自 tcpdump 的一行

16:17:26.561616 IP 2.2.2.2 > 3.3.3.3.http: Flags [S], seq 1152634327, win 28400, options [mss1420,sackOK,TS val3415260604 ecr 0,nop,wscale 7], length 0
16:17:26.561736 IP 1.1.1.1 > 2.2.2.2: ICMP host 3.3.3.3 unreachable - admin prohibited filter, length 68

1.1.1.1 is a GCP gateway
2.2.2.2 is my machine on GCP
3.3.3.3 is the external server

我如何知道哪台机器正在执行阻止连接尝试的规则?

答案1

GCP 有 2 条隐含规则,规定如下:关联. 隐含的出站规则允许所有具有最低优先级 (65535) 的出站流量。

我已经复制了该场景,并将防火墙规则放置在我的 GCP 项目中(wheew 是我的 GCP VM 源地址),拒绝所有到特定外部地址(xxxx)的出站流量,我得到 TCPdump(在我的实例上执行)显示重新尝试连接:

其中 xxxx 是外部 IP,vminstance 是我的 GCP 实例。

18:19:50.499009 IP vminstance.39728 > xxxx80:标志 [S],seq 1309572437,win 28400,选项 [mss 1420,sackOK,TS val 323066870 ecr 0,nop,wscale 7],长度 0

18:19:51.527849 IP vminstance.39728 > xxxx80:标志 [S],seq 1309572437,win 28400,选项 [mss 1420,sackOK,TS val 323067128 ecr 0,nop,wscale 7],长度 0

因此说明,并与您的输出进行比较,您可能需要查看远程网络/主机防火墙规则

相关内容