【问题标题】:Google Cloud VM Instance How to turn ON IP forwardingGoogle Cloud VM Instance 如何开启 IP 转发
【发布时间】:2017-09-01 06:06:12
【问题描述】:

我已经在 Compute Engine 中设置了一个 Google Cloud VM 实例。我使用 Windows Server 2016 作为图像。创建我的 VM 实例后,我可以看到它的详细信息。在网络接口下的详细信息页面上,我可以看到我的外部 IP 和内部 IP。但我看到 IP 转发已关闭。

如何打开它?

我想要达到的目标如下:

  1. 在 Google Cloud VM 实例 Windows Server 上,我安装了 Tomcat 7。
  2. 我在 Tomcat 中部署了一个 war 文件 (REST API)。
  3. 我想从我的本地机器访问这个 REST API。
  4. 如果我错了,请纠正我,但我正在尝试在 以下方式:

    4.1 From local machine access GC VM Instance External IP 
    
    4.2 Then using IP forwarding my request should be forwarded to GC VM Instance Internal IP port 8080
    
    4.3 On Internal IP port 8080 Tomcat serves the request
    

请告诉我我的方法是否正确以及如何实现?如果不是,请建议我应该如何去做。如果可能的话,有人可以一步一步指导我。

非常感谢任何帮助。

【问题讨论】:

  • 要开启它,您需要在创建实例时设置 --can-ip-forward 标志,参见cloud.google.com/sdk/gcloud/reference/compute/instances/create
  • 如果您只有 1 个 VM 实例,我认为这不是 IP 转发的用例。你的 Tomcat 应该在 0.0.0.0:8080 上监听,然后你就可以使用外部 IP 从本地机器访问它。

标签: tomcat google-cloud-platform google-compute-engine


【解决方案1】:

Compute Engines 虚拟机实例位于一对一 NAT 之后。公共 IP 将替换为 VM 的内部 IP。你描述的应该有效。确保 Compute Engine 防火墙和本地 Windows 防火墙都允许连接到 tomcat 端口。

屏幕截图中的“IP 转发”是允许 VM 实例发送与其任何 IP 都不匹配的接收数据包。例如,这用于将 VM 设置为 NAT 网关,来自文档:

为实例启用 IP 转发

默认情况下,除非数据包的源 IP 地址与实例的 IP 地址匹配,否则 Compute Engine 实例无法转发数据包。同样,Compute Engine 不会传送目标 IP 地址与接收数据包的实例的 IP 地址不同的数据包。但是,如果您想使用实例来帮助路由数据包,则这两种功能都是必需的。要禁用此源和目标 IP 检查,请启用 canIpForward 字段,该字段允许实例发送和接收具有不匹配目标或源 IP 的数据包。

https://cloud.google.com/vpc/docs/using-routes#canipforward

您不需要启用 IP 转发来运行 tomcat 服务器。

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2021-12-21
    • 2018-10-30
    • 2023-03-22
    • 2018-12-23
    • 2020-09-11
    • 1970-01-01
    • 2018-05-01
    • 2019-09-24
    相关资源
    最近更新 更多