Google 云防火墙在使用地址中的端口时阻止连接
Google Cloud firewall blocking connections when using port in address
我对 Google Cloud 的工作方式还很陌生,我觉得我好像缺少了一些明显的东西。我在 Ubuntu 18.04 VM 上安装了 TeamCity,它在端口 8111 上是 运行。在浏览器中点击 [ip]:8111 时,我没有得到界面——我得到“35.196 .21.62 拒绝连接。”我可以从我的 windows 机器上的命令提示符 ping [ip]:8111,它也没有响应。但是,我可以在没有端口的情况下 ping [ip],它的响应很好。
据我所知,我的防火墙应该设置为允许阳光下的一切都连接到盒子。我为出口和入口创建了以下相同的规则。
最后,防火墙规则显示在实例上,因此正在应用它们。
Linux 框也有问题。我已经确认该服务是 运行,但我不确定还要检查什么——没有浏览器,因为没有 GUI。 "ufw status" 确认防火墙已关闭。
我怎样才能打开那个端口以便我可以在我的浏览器中访问它?
When hitting [ip]:8111 in the browser, I am not getting the
interface--I get "35.196.21.62 refused to connect."
您需要创建防火墙规则以允许流量流向端口 8111。
I can ping [ip]:8111 from the command prompt on my windows machine,
and it doesn't respond there either.
ping
命令不使用TCP
或UDP
,而是使用ICMP
。 ICMP
没有端口号。 ICMP
是 IP Protocol 1
.
However, I can ping [ip] without the port and it responds just fine.
这意味着您有允许 ICMP
流量的防火墙规则。
根据问题的描述,我们运行进行了本地测试。当 Linux 机器上的应用程序 运行s 作为网络 (TCP/IP) 流量的端点时,我们会发现它监听一个端口号。希望连接到此应用程序的客户端必须知道机器 运行ning 所在的主机的 host/IP 地址以及应用程序 运行ning 所在的端口。
在这个问题中描述的难题中,我们试图连接到我们认为正在侦听端口 8111 的 GCP 托管应用程序。但是,我们收到的错误消息是 "Connection refused"。我的经验是,此错误表明来自客户端的网络请求一直到主机,但主机不知道正在侦听该端口的应用程序。
列出所有正在使用的端口的一种简单方法是使用命令 nestat
。这有很多选项,但我更喜欢的是 nestat -an
,它列出所有网络连接(包括处于侦听模式的网络连接)并打印数字 IP 地址,而不是执行主机名解析。有关 nestat 的完整详细信息,请参阅 netstat。 nestat 的替代方法是命令 lsof
,但这并不常用,可能需要更多设置。
在 运行ning nestat 之后,我们发现主机上没有本地应用程序主动侦听端口 8111,这充分解释了为什么基于 Internet 的客户端无法连接到该服务。解决方案的第一步将检查主机上 运行 应用程序的性质和配置,以确定如何配置它以主动侦听所需端口。除非 netstat 显示应用程序正在本地侦听,否则不会 value/merit 尝试从 Internet 连接。
我对 Google Cloud 的工作方式还很陌生,我觉得我好像缺少了一些明显的东西。我在 Ubuntu 18.04 VM 上安装了 TeamCity,它在端口 8111 上是 运行。在浏览器中点击 [ip]:8111 时,我没有得到界面——我得到“35.196 .21.62 拒绝连接。”我可以从我的 windows 机器上的命令提示符 ping [ip]:8111,它也没有响应。但是,我可以在没有端口的情况下 ping [ip],它的响应很好。
据我所知,我的防火墙应该设置为允许阳光下的一切都连接到盒子。我为出口和入口创建了以下相同的规则。
最后,防火墙规则显示在实例上,因此正在应用它们。
Linux 框也有问题。我已经确认该服务是 运行,但我不确定还要检查什么——没有浏览器,因为没有 GUI。 "ufw status" 确认防火墙已关闭。
我怎样才能打开那个端口以便我可以在我的浏览器中访问它?
When hitting [ip]:8111 in the browser, I am not getting the interface--I get "35.196.21.62 refused to connect."
您需要创建防火墙规则以允许流量流向端口 8111。
I can ping [ip]:8111 from the command prompt on my windows machine, and it doesn't respond there either.
ping
命令不使用TCP
或UDP
,而是使用ICMP
。 ICMP
没有端口号。 ICMP
是 IP Protocol 1
.
However, I can ping [ip] without the port and it responds just fine.
这意味着您有允许 ICMP
流量的防火墙规则。
根据问题的描述,我们运行进行了本地测试。当 Linux 机器上的应用程序 运行s 作为网络 (TCP/IP) 流量的端点时,我们会发现它监听一个端口号。希望连接到此应用程序的客户端必须知道机器 运行ning 所在的主机的 host/IP 地址以及应用程序 运行ning 所在的端口。
在这个问题中描述的难题中,我们试图连接到我们认为正在侦听端口 8111 的 GCP 托管应用程序。但是,我们收到的错误消息是 "Connection refused"。我的经验是,此错误表明来自客户端的网络请求一直到主机,但主机不知道正在侦听该端口的应用程序。
列出所有正在使用的端口的一种简单方法是使用命令 nestat
。这有很多选项,但我更喜欢的是 nestat -an
,它列出所有网络连接(包括处于侦听模式的网络连接)并打印数字 IP 地址,而不是执行主机名解析。有关 nestat 的完整详细信息,请参阅 netstat。 nestat 的替代方法是命令 lsof
,但这并不常用,可能需要更多设置。
在 运行ning nestat 之后,我们发现主机上没有本地应用程序主动侦听端口 8111,这充分解释了为什么基于 Internet 的客户端无法连接到该服务。解决方案的第一步将检查主机上 运行 应用程序的性质和配置,以确定如何配置它以主动侦听所需端口。除非 netstat 显示应用程序正在本地侦听,否则不会 value/merit 尝试从 Internet 连接。