gpt4 book ai didi

linux - 允许 VM 实例上的 http 流量的 gcloud 命令是什么? (这不是创建防火墙规则!)

转载 作者:IT王子 更新时间:2023-10-28 23:57:54 24 4
gpt4 key购买 nike

首先,我希望使用纯粹的 gcloud 命令来实现我的目标 - 而不是 GCE 界面 - 所以请不要使用 GUI 提供答案!

我从附加到 VM 实例的磁盘创建了一个镜像。为此,我必须根据用于创建图像的 Google 文档删除该实例。之后,我使用图像重新创建了我的实例。

除了 http 和 https 流量现在在实例中被禁用之外,几乎所有的事情似乎都从那个过程中完美地工作了!我无法再浏览到 VM 上托管的网站。我也无法再通过 ping 域获得响应。

当我查看 GCE gui(只是查看 - 没有修改任何内容!)时,我可以看到实例的“允许 http 流量”和“允许 https 流量”复选框未选中。看来一定和我的问题有关。

我检查了服务器 (ipTables) 和与 VM 关联的 Google 网络上的防火墙规则。这些都没有问题(并且虚拟机肯定与该网络相关联)。如果我在服务器上使用 tcpdump 监听端口 80 并浏览到我的域,我可以看到请求正在到达服务器,因此它们不会被传入的防火墙阻止。我还明确地重新启动了 Apache,只是要确保这不是问题所在。

那么,我需要做些什么来在传出的基础上取消阻止端口 80 和 443 吗?这可能是 SELinux 的事情吗?因为图像应该准确地代表磁盘上的内容,所以它不应该是。看来这一定是在GCE这边……

如果这些复选框不编辑服务器上的 iptables 或 Google 网络上的防火墙规则,它们实际上对实例有什么作用?设置这些开关的 gcloud 命令是什么,或者理想情况下使用实例创建命令指定它?

最佳答案

已解决。我不完全了解幕后发生的事情,但解决这个问题需要使用“标签”,将网络上的防火墙规则与 VM 实例相关联。据我目前所知,这仅与 http 和 https 相关。网络上打开的其他端口和 VM 似乎没有这个额外的部分就可以工作。

如果查看防火墙规则,您可能会看到端口 80 和 443 规则分别具有标签“http-server”和“https-server”。如果他们不这样做,您将需要添加那些(或您选择的其他标签)。事实证明实例也需要添加这些标签。

要将标签添加到现有 VM 实例,请使用此 gcloud 命令:

gcloud compute instances add-tags [YOUR_INSTANCE_NAME] --tags http-server,https-server

要在创建实例时添加标签,请在您的语句中包含该标志:

gcloud compute instances create [YOUR_INSTANCE_NAME] --tags http-server,https-server

如果您查看 GCE gui,您会看到“允许 http 流量”和“允许 https 流量”复选框在执行此操作后被选中。然后请求和响应按预期流经端口 80 和 443。

关于linux - 允许 VM 实例上的 http 流量的 gcloud 命令是什么? (这不是创建防火墙规则!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com