使用 Azure PowerShell 创建具有静态公共 IP 地址的虚拟机

在本文中,我们将创建具有静态公共 IP 地址的 VM。 使用公共 IP 地址可以通过 Internet 与虚拟机通信。 分配静态公共 IP 地址而非动态地址可以确保地址永远不会改变。

公共 IP 地址会产生少许费用。 每个订阅可以使用的公共 IP 地址数有限制

先决条件

如果你选择在本地安装和使用 PowerShell,本文要求使用 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az 查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount -Environment AzureChinaCloud 以创建与 Azure 的连接。

创建资源组

Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

使用 New-AzResourceGroup 在 chinaeast2 位置创建名为“myResourceGroup”的资源组 。

$rg =@{
    Name = 'myResourceGroup'
    Location = 'chinaeast2'
}
New-AzResourceGroup @rg

创建公共 IP 地址

使用 New-AzPublicIpAddress 创建标准公共 IPv4 地址。

以下命令在 myResourceGroup 中创建名为 myPublicIP 的公共 IP 地址 。

## Create IP. ##
$ip = @{
    Name = 'myPublicIP'
    ResourceGroupName = 'myResourceGroup'
    Location = 'chinaeast2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    IpAddressVersion = 'IPv4'
}
New-AzPublicIpAddress @ip

创建虚拟机

使用 New-AzVM 创建虚拟机。

以下命令将创建一个 Windows Server 虚拟机。 我们将输入先前在 -PublicIPAddressName 参数中创建的公共 IP 地址的名称。 出现提示时,请提供要用作虚拟机的凭据的用户名和密码:

## Create virtual machine. ##
$vm = @{
    ResourceGroupName = 'myResourceGroup'
    Location = 'China East 2'
    Name = 'myVM'
    PublicIpAddressName = 'myPublicIP'
}
New-AzVM @vm

有关公共 IP SKU 的详细信息,请参阅公共 IP 地址 SKU。 可将虚拟机添加到 Azure 负载均衡器的后端池。 公共 IP 地址的 SKU 必须与负载均衡器的公共 IP 的 SKU 相匹配。 有关详细信息,请参阅 Azure 负载均衡器

使用 Get-AzPublicIpAddress 查看分配的公共 IP 地址并确认它创建为静态地址:

## Retrieve public IP address settings. ##
$ip = @{
    Name = 'myPublicIP'
    ResourceGroupName = 'myResourceGroup'
}
Get-AzPublicIpAddress @ip | Select "IpAddress","PublicIpAllocationMethod" | Format-Table

警告

不要修改虚拟机操作系统中的 IP 地址设置。 操作系统不知道 Azure 公共 IP 地址。 虽然可以向操作系统添加专用 IP 地址设置,但除非必要,否则我们建议不要这样做,而只能阅读向操作系统添加专用 IP 地址之后才执行此操作。

注意

Azure 会为未分配公共 IP 地址的 VM 或位于内部基本 Azure 负载均衡器的后端池中的 VM 提供默认出站访问 IP。 默认出站访问 IP 机制会提供不可配置的出站 IP 地址。

发生以下事件之一时,将禁用默认出站访问 IP:

  • 将公共 IP 地址分配给 VM。
  • 虚拟机被放置在标准负载平衡器的后端池中,有无出站规则均可。
  • 向虚拟机的子网分配了 Azure 虚拟网络 NAT 网关 资源。

在灵活业务流程模式下通过使用虚拟机规模集创建的 VM 没有默认的出站访问权限。

有关 Azure 中的出站连接的详细信息,请参阅 Azure 中的默认出站访问使用源网络地址转换(SNAT)进行出站连接

清理资源

如果不再需要资源组及其包含的所有资源,请使用 Remove-AzResourceGroup 将其删除:

Remove-AzResourceGroup -Name myResourceGroup -Force

后续步骤