为什么使用 iptables 设置出站规则会阻止整个站点,而 Google Cloud 防火墙中的出站规则并没有太大变化?

问题描述

我在 GCE 有一个小项目,我对出口费用不满意。我搜索了这个主题以更好地理解它,并且根据许多人的说法,每次请求页面然后将其发送到网络外时,它都是出口。但我决定测试它并通过如下设置防火墙规则来阻止出口流量:

Traffic: egress; Action: deny; Ip ranges: 0.0.0.0/0; Protocols and ports: all;

结果是:网站仍在运行,只有少数内容停止运行,例如电子邮件和更新。但是任何人仍然可以访问每个页面

然后,我对 iptables 进行了以下操作以查看不同之处:

iptables -A OUTPUT -o eth0 -j DROP

它完全屏蔽了我的网站。我什至无法访问 SSH。感谢上帝我没有保存它,重启实例就足够了。

所以,我不明白什么是到 Google 的出口。

解决方法

如果客户端连接到您的实例(入口 - 传入连接),例如 Web 浏览器,则会自动创建并允许返回流量规则。 VPC 防火墙规则是有状态的。

当允许连接在任一方向通过防火墙时, 也允许与此连接匹配的返回流量。你不能 配置防火墙规则以拒绝关联的响应流量。

您创建的规则会阻止实例连接到另一个目的地(出口 - 传出连接)。

VPC firewall rules overview