Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 知道为什么不能从另一个GCP实例访问此端口吗?_Google Cloud Platform_Google Cloud Networking - Fatal编程技术网

Google cloud platform 知道为什么不能从另一个GCP实例访问此端口吗?

Google cloud platform 知道为什么不能从另一个GCP实例访问此端口吗?,google-cloud-platform,google-cloud-networking,Google Cloud Platform,Google Cloud Networking,我已经创建了一个Ignite数据库实例,它应该在端口10800上接受瘦客户机的连接。在SSH进入该实例并运行netstat-tunlp后,我可以看到: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ... tcp 0 0 0.0.0.0:10800 0.0.0.0:* LIST

我已经创建了一个Ignite数据库实例,它应该在端口10800上接受瘦客户机的连接。在SSH进入该实例并运行
netstat-tunlp
后,我可以看到:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name 
...
tcp        0      0 0.0.0.0:10800           0.0.0.0:*               LISTEN      871/java
...
但是,另一台主机的端口扫描显示:

abcdef@ssh-instance:~$ sudo nmap -sS -p10800-10800 x.x.x.x
Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-08 03:33 UTC
Nmap scan report for a.b.d.e.f (x.x.x.x)
Host is up (0.00020s latency).

PORT      STATE    SERVICE
10800/tcp filtered gap

Nmap done: 1 IP address (1 host up) scanned in 0.44 seconds

所以它似乎遥不可及。起初我认为GCP防火墙阻止了端口,但是启用了规则
default allow internal
,因此应该公开端口。我还尝试在连接时启用防火墙日志,但没有生成日志


知道会发生什么吗?

Apache Ignite使用更多的端口和端口范围,而不仅仅是端口10800(这只是JDBC连接器端口)

请看这里,这些是标准配置中使用的端口:

可能端口10800不是您需要的端口,或者不仅仅是这个端口

因此,它可能会根据您的配置发生很大变化。 如何设置群集? 如何启动服务器节点并指定节点列表

通过Java代码,您可以指定节点列表执行以下操作

TcpDiscoverySpi        discover = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder finder   = new TcpDiscoveryVmIpFinder();

finder.setAddresses(Arrays.asList("10.10.10.1", "10.10.10.2")); // input the relevant IP addresses
discover.setIpFinder(finder);
。。。当然,使用正确的(本地、内部)IP地址

关于GCP测试的最后一点,请在您的节点上运行一些netcat测试。 如果在一台服务器上启动侦听器,则应该能够从另一台服务器进行连接

在第一台服务器上启动netcat侦听器(例如:此服务器具有专用IP 10.0.0.1)

然后从另一台服务器(在您的GCP专用网络内)连接到侦听器

请根据需要测试更多端口

默认GCP设置:

  • 您应该能够通过内部/专用IP从GCP连接到GCP 地址(即使是在不同GCP区域上运行的实例)
  • 您应该无法连接到公共/外部IP地址 即使连接来自GCP实例

希望能有所帮助

谢谢你的回答!我尝试了更多的方法,最终发现我的实例需要一个外部IP。使用外部IP创建实例后,该实例是可访问的!(我仍然使用内部IP进行连接,幸运的是,我的防火墙仍然阻止来自internet的连接)

1)您是否为端口10800启用了防火墙进入规则?2) 两个系统是否在同一个专有网络中?3) 您使用的是公用IP地址还是专用IP地址?需要更多细节来回答您的问题。谢谢您的回答!1) 端口10800没有进入规则。2) 两者都在默认网络中。3) 我正在使用内部IP地址(我为数据库保留了一个静态内部IP)。@JohnHanley我打开了GCP防火墙日志记录,看起来连接通过了GCP防火墙(“处置:允许”显示在此尝试的日志中)。非常神秘…您不需要公共IP地址。您的解决方案表明可能存在不同的问题。您的实例没有到Internet的路由,通过启用公共IP,您给了它一个路由。您可能需要为内部专用网络设置NAT。
# netcat -l -p 10800
# netcat 10.10.10.1 10800