Azure,从Internet访问时某些端口上的连接被拒绝

时间:2018-04-06 07:14:06

标签: azure centos vnet

我有2个虚拟机(CentOS),运行在同一个VNET(和子网)中。 他们都有静态公共IP。

我有一个网络安全组,它定义入站和出站规则,连接到两个NIC以及VNET。

其中一个入站规则是default-allow-ssh规则。 到目前为止一切顺利,使用SSH,我可以从外部Azure访问这两个虚拟机,也可以从我自己的计算机上访问网络上的任何虚拟机。

在我运行网络服务器的其中一个虚拟机上。

在端口80上公开Web服务器并在端口80上添加新的NSG入站安全规则(src:any,src端口范围:*,dest:any,port:80,protocol:any)允许met从以下位置访问Web服务器任何地方:从我的电脑到网络上的任何地方,从我在Azure中的其他虚拟机,就像我期待的那样。

现在,当我将网络服务器的端口从80更改为例如7181时:

我仍然可以做" curl http://[PUBLIC_IP]:7181"从服务器我在AS WELL AS上托管网络服务器,从位于同一个VNET(子网)的其他CentOS服务器,但不再是我的电脑或Azure领域之外的任何电脑(网络)。

Firewalld没有在网络服务器上运行,也没有设置iptables,只有NSG规则定义了入站和出站流量。

始终可以使用ssh从Azure外部的任何位置访问Web服务器的主机。端口80上的Web服务本身,包括适当的入站NSG规则,在Azure外部和内部的任何地方也可以正常工作。自定义端口,与NSG中的端口80或22配置相同(当然端口号除外),只能从同一个VNET内部访问。

任何?

(我得到的错误是众所周知的:ERR_CONNECTION_REFUSED)

NSG截图: enter image description here

3 个答案:

答案 0 :(得分:0)

问道:您是否在NSG中为端口7181添加了规则?

我的测试说:这种错误来自NSG。

网络内的CURL可能会导致错误的意见。在端口7181上连接IP时,应该跟踪路由。

答案 1 :(得分:0)

为要打开的每个端口创建单独的规则。据我所知,您无法在“端口”字段中指定端口列表。只有单个端口,端口范围或*。

仅供参考:VNET中其他机器的连接正在运行,因为存在“AllowVnetInBound”规则。

答案 2 :(得分:0)

重新启动VM实例解决了这个问题。因此,在运行中添加/更新NSG规则似乎不会立即影响正在运行的实例,或者其他需要花费大量时间同步并生效的内容。我一定忘记了我早期的Windows时代,在更改配置或安装新东西时重新启动非常标准。无论如何,谢谢大家在这个问题上花费的时间和精力。