我有 2 个虚拟机(CentOS),在同一个 VNET(和子网)中运行。他们都有一个静态的公共 IP。
我有一个网络安全组,它定义了入站和出站规则,连接到 NIC 和 VNET。
入站规则之一是 default-allow-ssh 规则。到目前为止一切都很好,使用 SSH,我可以从 Azure 外部访问这两个虚拟机,也可以从我自己的计算机从网络上的任何地方访问。
在其中一台虚拟机上,我正在运行一个网络服务器。
在端口 80 上暴露 webserver 并在端口 80 上添加新的 NSG 入站安全规则(src:any,src 端口范围:*,dest:any,端口:80,protocol:any)允许 met 从任何地方访问 webserver:从我的电脑来自网络上的任何地方,来自我在 Azure 中的其他 VM,正如我所期望的那样。
现在,当我将网络服务器的端口从 80 更改为例如 7181 时:
我仍然可以从服务器上执行“curl http://[PUBLIC_IP]:7181 ” 我在同一个 VNET(子网)中的其他 CentOS 服务器上托管网络服务器,但不再来自我的电脑或任何Azure 领域(网络)之外的 pc。
Firewalld 没有在网络服务器上运行,我也没有设置 iptables,只有 NSG 规则定义了入站和出站流量。
始终可以从 Azure 之外的任何地方使用 ssh 访问 Web 服务器的主机。端口 80 上的 Web 服务本身,包括适当的入站 NSG 规则,在 Azure 内外的任何地方也可以正常工作。自定义端口与 NSG 中的端口 80 或 22 配置相同(当然端口号除外),只能从同一 VNET 内部访问。
任何人?
(我得到的错误是众所周知的:ERR_CONNECTION_REFUSED)
NSG 截图: 在此处输入图片描述