Windows Azure虚拟机 - 打开端口

35

我正在尝试在Windows Azure虚拟机中打开一个端口。 我有一个监听该端口的游戏,并且可以通过localhost访问它,因此游戏正在运行。

我还在防火墙中打开了该端口,并在虚拟机中创建了一个终结点,但是该端口似乎对外界不开放。 我已经尝试通过IP地址和DNS访问它,但结果相同。

还有其他需要注意的吗? 我查阅了几个在线教程,但无法弄清楚我做错了什么。

9个回答

35

这个已经变成了这个

输入图像描述

我建议目前忽略谷歌上的所有内容。


14

谢谢你,Leo。这是我遵循的教程打开端点,但不幸的是,该端口似乎没有向外界打开。我在想IP地址是否为公共地址。如果我找到解决方案,我会重试并回复。再次感谢! - Irina
你连接到公共VIP了吗?你的主机名应该类似于“myhostname.cloudapp.net”。你可以在虚拟机的仪表板选项卡上看到公共DNS。 - Ben
Ben - 我试过了。出乎意料的是,我今天尝试了另一个端口,它正常工作了。由于某种原因,虚拟机似乎不能打开我想要的特定端口;也许第一次我没有做对某些事情,他认为它是潜在威胁。使用相同的程序来操作不同的端口立即奏效。感谢大家的帮助! - Irina

7
这是一个两步骤的过程:
  1. 在Azure门户中配置端口规则(无需任何重启。几分钟后生效) 以下是步骤(目前为止):点击VM -> 点击“网络” -> 点击“允许入站端口规则” Add Inbound Port rule

  2. 在虚拟机自己的防火墙中配置端口规则 - 这取决于您的VM运行的操作系统(或禁用此防火墙) 以下是Windows 10的步骤: 打开“带高级安全性的Windows防火墙”桌面应用程序 -> 在左侧面板上单击“入站规则” -> 在右侧操作面板中单击“新建规则”。以下屏幕截图解释了其余步骤。 Select Port Enter port number Allow the connection Select as applicable Add name and desc

现在,监听该端口的应用程序可以通过互联网进行访问。

6

Microsoft Azure的外壳从这里开始

通过Azure CLI很容易实现开放端口,例如打开80端口

$ az vm open-port -g MyResourceGroup -n MyVm --port 80

同时打开多个端口

az vm open-port -g MyResourceGroup -n MyVm --port 80-100 --priority 100

开放所有端口..

az vm open-port -g MyResourceGroup -n MyVm --port '*'

请特别注意此参数,每条规则必须唯一

--priority :规则优先级,介于100(最高优先级)和4096(最低优先级)之间。 每个集合中的规则必须唯一。 默认值:900。


华丽!非常感谢! - xpt
1
我不知道 az vm open-port ... 究竟在做什么。但这对我起作用了。仅通过前端设置入站规则是不够的。(也许使用此命令还更改了 VM 的防火墙设置,我不确定。) - colidyre

5

作为以后的参考,如果您想听取3000或该范围内的内容,它根本不起作用。

转到8080的范围,创建入站规则,然后您就可以运行了。


实际上,Azure VM中可以打开的端口列表似乎受到某种限制。我尝试使用WinAppDriver的4723端口,但没有成功。我尝试了一些其他端口,22、80、443、8080可以使用,但23、7000、7005、8081不能使用。 - Livven

3

这可能是撰写此答案时最新的解决方案:

您需要创建一个网络安全组(或使用现有的安全组)。最简单的方法是在搜索资源栏中搜索“网络安全组”。如果存在现有的NSG,请单击它并从设置中查找入站安全规则。然后添加一个具有所需端口的入站规则。例如,我在VM上打开了8080端口,并显示了以下设置。

更多信息:https://azure.microsoft.com/zh-cn/documentation/articles/virtual-machines-windows-nsg-quickstart-portal/

Azure inbound security rule example


3

除了上述内容,您可能需要在虚拟机防火墙中创建入站规则。门户中的设置可以从公共 IP 接收数据并转发到虚拟机,但是虚拟机本身必须允许应用程序侦听端口。

这可能可以解释为什么 Irina 在某些端口上不能正常工作,而在其他端口上可以正常工作。


那你怎么做呢? - CQM
不是“可能需要”,而是绝对需要,除非它已经打开(例如默认情况下允许rdp),NSG仅允许在网络接口级别上进行流量控制,操作系统防火墙与此无关,必须单独配置。 - illegal-immigrant

2

请检查虚拟机上的Windows防火墙。如果端口8080没有添加到防火墙入站规则中,则需要添加一个新的入站规则以允许访问端口8080。(远程登录到您的虚拟机。Windows Defender防火墙 ->高级设置)

enter image description here


0

源端口范围:*(允许任何源端口)

在创建了一个配置为在标准TCP端口80上提供Web请求的虚拟机之后,您可以:

  1. 创建一个网络安全组。

  2. 创建一个入站安全规则,允许流量通过,并为以下设置分配值:

     - 目标端口范围:80            
     - 源端口范围:*(允许任何源端口)
     - 优先级值:输入一个小于65,500的值,并且比默认的拒绝所有入站规则更高优先级。
    
  3. 将网络安全组与VM网络接口或子网关联。

假设您已经启动了适当的服务并在虚拟机上打开了任何操作系统防火墙规则


举个例子:端口范围:2022-2023 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接