Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于VM的Azure云服务终结点仅允许内部访问_Azure_Azure Virtual Machine_Azure Virtual Network - Fatal编程技术网

用于VM的Azure云服务终结点仅允许内部访问

用于VM的Azure云服务终结点仅允许内部访问,azure,azure-virtual-machine,azure-virtual-network,Azure,Azure Virtual Machine,Azure Virtual Network,我有一个运行SQL Server的VM。我在Windows防火墙上打开了端口1433,在相应的云服务转发端口57501到1433上有一个端点。我没有在该端点上指定任何ACL。我希望端点只能从虚拟机所在的VNet中的特定子网访问 如果我在ACL中设置了它,它就不起作用了——ACL似乎只关心客户端的公共IP。因为公共IP可能会改变,所以这不是一个选项 这里推荐的方法是什么?请注意,我不想直接连接到VM主机名,因为我想使用云服务为我设置的CNAME(实际的Windows计算机名是一个随机长字符串)。在

我有一个运行SQL Server的VM。我在Windows防火墙上打开了端口1433,在相应的云服务转发端口57501到1433上有一个端点。我没有在该端点上指定任何ACL。我希望端点只能从虚拟机所在的VNet中的特定子网访问

如果我在ACL中设置了它,它就不起作用了——ACL似乎只关心客户端的公共IP。因为公共IP可能会改变,所以这不是一个选项

这里推荐的方法是什么?请注意,我不想直接连接到VM主机名,因为我想使用云服务为我设置的CNAME(实际的Windows计算机名是一个随机长字符串)。

在VM或云服务角色实例级别对传入/传出流量应用规则

请注意NSGs默认规则允许虚拟网络内的流量,以及出站到Internet的流量。默认情况下,所有其他通信都被拒绝。您需要明确指定规则来更改此行为或允许任何其他流量进出

您可以创建如下所示的NSG规则,以仅允许来自VNet内特定子网的流量

Get-AzureNetworkSecurityGroup -Name "NSG-FrontEnd" `
| Set-AzureNetworkSecurityRule -Name rdp-rule `
    -Action Allow -Protocol TCP -Type Inbound -Priority 100 `
    -SourceAddressPrefix 192.168.1.0/24  -SourcePortRange '*' `
    -DestinationAddressPrefix '*' -DestinationPortRange '1433' 

我建议设置NSG(网络安全组),这样即使端点URL是公共ip,网络安全组也可以与云服务端点配对?对…但当流量通过云服务端点时,SourceDestinationPrefix是云服务端点ip,而不是internet VNet子网…对吗,我没有注意到您试图使用云服务的CNAME访问SQL server。通过这种方式,您将通过Internet可路由IP地址。这与您要求从特定子网访问SQL server相矛盾。相反,您可以使用静态VNET ip地址设置SQL server,设置NSG规则以允许访问子网,并使用静态ip地址从该子网内进行连接。看见