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

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

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

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

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户
  • 本教程需要 Azure CLI 版本 2.0.28 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。

创建资源组

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

使用 az group create 在 eastus2 位置创建名为“myResourceGroup”的资源组。

  az group create \
    --name myResourceGroup \
    --location eastus2

创建公共 IP 地址

使用 az network public-ip create 创建标准公共 IPv4 地址。

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

az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP \
    --version IPv4 \
    --sku Standard \
    --zone 1 2 3

创建虚拟机

使用 az vm create 创建虚拟机。

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

  az vm create \
    --name myVM \
    --resource-group TutorVMRoutePref-rg \
    --public-ip-address myPublicIP \
    --size Standard_A2 \
    --image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest \
    --admin-username azureuser

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

使用 az network public-ip show 查看分配的公共 IP 地址,并确认它是否创建为静态地址:

  az network public-ip show \
    --resource-group myResourceGroup \
    --name myPublicIP \
    --query [ipAddress,publicIpAllocationMethod,sku] \
    --output table

警告

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

注意

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

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

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

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

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

清理资源

如果不再需要资源组及其包含的所有资源,可以使用 az group delete 将其删除:

  az group delete --name myResourceGroup --yes

后续步骤