2017-09-01 553 views
1

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

enter image description here

我怎样才能打开它?

我想实现如下:

  1. 在谷歌云虚拟机实例的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 
    

请让我知道,如果我的做法是正确的,我怎么能实现它?如果不能提出建议我应该怎么做。如果可能的话,有人可以一步步引导我。

任何帮助,非常感谢。

+0

要打开它,您需要在实例创建时设置--can-ip-forward标志,请参阅https://cloud.google.com/sdk/gcloud/reference/compute/instances/create – Dagang

+0

如果您仅有1个VM实例,我不认为这是IP转发的用例。您的Tomcat应该在0.0.0.0:8080上侦听,然后您可以使用外部IP从本地机器访问它。 – Dagang

回答

0

计算引擎VM实例位于一对一NAT之后。公共IP被虚拟机的内部IP替换。你所描述的应该起作用。确保计算引擎防火墙和本地Windows防火墙都允许连接到tomcat端口。

屏幕截图中的“IP转发”是为了允许VM实例发送不匹配任何IP的接收数据包。这是用于例如建立一个VM作为NAT网关,从文档:

启用的情况下

默认IP转发,计算引擎实例不能转发,除非源IP地址的数据包数据包与实例的IP地址相匹配。同样,计算引擎也不会传送目标IP地址与接收数据包的实例的IP地址不同的数据包。但是,如果要使用实例来帮助路由数据包,则两种功能都是必需的。要禁用此源和目标IP检查,请启用canIpForward字段,该字段允许实例发送和接收具有不匹配的目标或源IP的数据包。

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

你并不需要启用IP转发到运行Tomcat服务器。

相关问题