你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

确定 Azure 实验室服务的防火墙设置

本文介绍如何查找 Azure 实验室服务中实验室使用的特定公共 IP 地址。 可以使用这些 IP 地址配置防火墙设置,并指定入站和出站规则,使实验室用户能够连接到其实验室虚拟机。

每个组织或学校都以最适合自己需求的方式配置自己的网络。 有时这包括设置防火墙规则,以阻止远程桌面协议 (RDP) 或安全外壳 (SSH) 连接到其自己网络之外的计算机。 由于 Azure 实验室服务在公有云中运行,因此可能需要一些额外的配置,以便实验室用户在从本地网络进行连接时访问其 VM。

每个实验室使用单个公共 IP 地址和多个端口。 每个实验室的公共 IP 地址不同。 所有 VM(模板 VM 和实验室 VM)都使用此公共 IP 地址。 实验室的公共 IP 地址不会更改。 为每个 VM 分配不同的端口号。 SSH 连接的端口范围为 4980-4989 和 5000-6999。 RDP 连接的端口范围为 4990-4999 和 7000-8999。 公共 IP 地址和端口号的组合用于将实验室创建者和实验室用户连接到正确的 VM。

如果使用 实验室帐户,请参阅 实验室帐户时实验室的防火墙设置。

注意

如果你的组织需要执行内容筛选,例如为了符合 儿童 Internet 保护法(CIPA),则需要使用第三方软件。 有关详细信息,请阅读有关使用实验室服务进行内容筛选的指南。

查找实验室的公共 IP

如果使用的是可自定义实验室,则可以在创建实验室后随时获取公共 IP 地址。 如果使用不可自定义的实验室,则必须发布实验室,并且容量至少为 1 才能获取实验室的公共 IP 地址。

可以使用 Az.LabServices PowerShell 模块获取实验室的公共 IP 地址。

$ResourceGroupName = "MyResourceGroup"
$LabName = "MyLab"
$LabPublicIP = $null

$lab =  Get-AzLabServicesLab -Name $LabName -ResourceGroupName $ResourceGroupName
if (-not $lab){
    Write-Error "Could find lab $($LabName) in resource group $($ResourceGroupName)."
}

if($lab.NetworkProfilePublicIPId){
    #Lab is using advance networking
    # Get public IP from networking properties
    $LabPublicIP = Get-AzResource -ResourceId $lab.NetworkProfilePublicIPId | Get-AzPublicIpAddress | Select-Object -expand IpAddress
}else{
    #Get first VM from lab
    # If customizable lab, this is the template VM
    # If non-customizable lab, this is the first VM published.
    $vm =  $lab | Get-AzLabServicesVM | Select -First 1

    if ($vm){
        if($vm.ConnectionProfileSshAuthority){
            $connectionAuthority = $vm.ConnectionProfileSshAuthority.Split(":")[0]
        }else{
            $connectionAuthority = $vm.ConnectionProfileRdpAuthority.Split(":")[0]
        }
        $LabPublicIP = [System.Net.DNS]::GetHostByName($connectionAuthority).AddressList.IPAddressToString | Where-Object {$_} | Select -First 1

    }
}

if ($LabPublicIP){
    Write-Output "Public IP for $($lab.Name) is $LabPublicIP."
}else{
    Write-Error "Lab must be published to get public IP address."
}

有关使用 Az.LabServices PowerShell 模块以及如何使用它的更多示例,请参阅 快速入门:使用 PowerShell 创建实验室计划以及 Azure 模块快速入门:使用 PowerShell 和 Azure 模块创建实验室。 有关 Az.LabServices PowerShell 模块中提供的 cmdlet 的详细信息,请参阅 Az.LabServices 参考

结论

现在可以确定实验室的公共 IP 地址。 可以为组织的防火墙为公共 IP 地址和端口范围 4980-4989、5000-6999 和 7000-8999 创建入站和出站规则。 更新规则后,实验室用户可以访问其 VM,而无需阻止网络防火墙访问。