我在google计算引擎示例上安装了单节点hadoop,我想打开该机器上的端口50070来访问hadoop Jmeter 板。我在防火墙规则中配置为tcp:50070 in 计算引擎网络。但我仍然无法访问我的端口以外的网络(即。通过互联网)。我尝试了我的gce示例的公共ip的nmap,结果是只有ssh端口被打开,所有其他端口都被过滤掉了。
注意:我使用的是Debian7.5映像
我在google计算引擎示例上安装了单节点hadoop,我想打开该机器上的端口50070来访问hadoop Jmeter 板。我在防火墙规则中配置为tcp:50070 in 计算引擎网络。但我仍然无法访问我的端口以外的网络(即。通过互联网)。我尝试了我的gce示例的公共ip的nmap,结果是只有ssh端口被打开,所有其他端口都被过滤掉了。
注意:我使用的是Debian7.5映像
3条答案
按热度按时间tf7tbtn21#
简短的回答
除了在gce web控制台配置防火墙规则之外,请确保您的服务器正在侦听0.0.0.0而不是127.0.0.1
冗长的回答
在服务器上下文中,0.0.0.0表示本地计算机上的所有ipv4地址。如果一个主机有两个ip地址,192.168.1.1和10.1.2.1,并且运行在该主机上的服务器监听0.0.0.0,那么在这两个ip源上都可以访问它
相比之下,127.0.0.1是用于建立与用户使用的同一台计算机的连接的ip地址。该地址通常称为本地主机。
当您希望具有网络功能的应用程序只为同一主机上的客户机提供服务时,通常会使用它。在127.0.0.1上侦听连接的进程将只接收该套接字上的本地连接。-来源
因此,如果您试图从internet建立与服务器的连接,而您的服务器正在gce计算机上监听127.0.0.1,那么,从服务器的Angular 来看,从来没有收到过请求,因此goocle cloud firewall将拒绝连接,因为在打开的端口(在您的例子50070中)没有服务器在侦听。
我希望这个答案有助于解决你的问题。致以最诚挚的问候。
vxqlmq5t2#
确保您的守护进程正在监听端口50070。如果项目中有多个网络,请确保在正确的网络上打开端口。您可以运行以下命令来检查有关示例和网络的信息。lsof-i gcutil--project=getinstance gcutil--project=listnetworks gcutil--project=listfirewalls gcutil--project=getfirewall
vql8enpb3#
检查iptables中是否允许ip/端口。
会给你看所有的记录。
要在iptables中允许端口,可以执行以下操作: