我在Google Compute Engine实例上安装了我的单节点Hadoop,我想在该计算机上打开端口50070以访问hadoop仪表板。我在防火墙规则中将其配置为计算引擎网络中的 tcp:50070 。但我仍然无法访问网络外的端口(即通过互联网)。我为我的GCE实例的公共IP尝试了nmap,我得到的结果只有ssh端口被打开所有其他端口被过滤。
注意:我正在使用debian 7.5图像
答案 0 :(得分:1)
确保您的守护程序正在侦听端口50070.如果您的项目中有多个网络,请确保在正确的网络上打开该端口。您可以运行以下命令来检查有关实例和网络的信息。 lsof -i gcutil --project = getinstance gcutil --project = listnetworks gcutil --project = listfirewalls gcutil --project = getfirewall
答案 1 :(得分:0)
检查iptables中是否允许IP /端口。
iptables -L
会显示所有记录。
要在iptables中允许端口,您可以执行以下操作:
sudo iptables -A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT
sudo iptables-save -c
答案 2 :(得分:0)
除了要在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都可以访问-Source
相反, 127.0.0.1 是用于建立与用户使用的同一台计算机的连接的IP地址,该地址通常称为localhost。
当您希望具有网络功能的应用程序仅为同一主机上的客户端提供服务时,通常会使用它。在127.0.0.1上侦听连接的进程将仅在该套接字上接收本地连接。 -Source
因此,如果您尝试建立从Internet到服务器的连接,并且服务器正在GCE机器上以127.0.0.1进行侦听,那么从服务器的角度来看,从未收到请求,因此Goocle由于没有服务器在打开的端口(在您的情况下为 50070 )中进行监听,因此Cloud Firewall将拒绝连接。
我希望这个答案有助于解决您的问题。最好的问候。