如果已创建转发规则,如何打开接口的 IP 转发

如果已创建转发规则,如何打开接口的 IP 转发

我正在尝试为托管在 Google Cloud 中的实例的接口启用 IP 转发。

  1. 我在 Google Compute Engine 上有一个 f1 micro VM 实例。
  2. 我已经使用 gcloud 成功创建了 IP 转发规则这里.
    命令compute forwarding-rules describe myrulenamehere给出该规则的描述。
  3. 当我打开 VM 实例详细信息页面时,IP 转发被标记为关闭,我无法通过编辑按钮更改它。

如果已经创建转发规则,如何打开接口的 IP 转发?

答案1

您无法更改此值,因为它是只读已创建实例的值。你可以从 Google 官方文档中查看这里

您只能在创建实例时设置 canIpForward 字段。实例创建后,该字段变为只读。

因此我认为您现在唯一的选择是重新创建虚拟机、目标实例和转发规则。您可以在创建时使用标志启用 ip-forwarding --can-ip-forward,例如:

gcloud compute instances create instance-name --can-ip-forward

您也可以在创建实例时从控制台的网络接口菜单中启用它。

您也可以保留相同的转发规则,然后更新目标实例仅运行:

gcloud compute forwarding-rules set-target ...

答案2

GCP 添加了无需重新创建 VM 实例即可更新 IP_FORWARDING 的选项。

gcloud compute instances update-from-file INSTANCE_NAME

欲了解更多详情,请查看 更新实例属性

答案3

正如@Ivan 所述,GCP 现在允许在创建后设置 canIpForward。但是如果您是 GCP 新手,则从云 shell/终端执行此操作并不直观。

打开控制台然后发出以下命令:

gcloud compute instances export $myInstanceName --project $myProjectId --zone $instanceZone --destination=config_old.txt

配置文件最终存储在你的 shell 实例中,而不是你的本地工作站中(无论文档说)。

单击终端上方的 3 个垂直点,然后单击下载。解压 zip 文件并找到 config_old.txt。编辑要更改的属性(canIpForward:true),将文件另存为 config_new.txt。单击 3 个垂直点,然后上传 -> 文件 -> 浏览器 -> 上传。

上传后发出以下命令:

gcloud compute instances update-from-file $myInstanceName --project $myProjectId --zone $instanceZone --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH

检查实例的网络接口:IP 转发现已开启

带值的示例:

gcloud compute instances export server1-example-com --project example-project --zone us-west4-c --destination=config_old.txt

gcloud compute instances update-from-file server1-example-com --project example-project --zone us-west4-c --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH

相关内容