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

将公共 IP 地址与 Azure VM 取消关联

本文介绍如何将公共 IP 地址与 Azure 虚拟机 (VM) 取消关联。 移除 VM 的公共 IP 地址也会去除其连接到 Internet 的能力。

可以使用 Azure 门户Azure CLIAzure PowerShell 将公共 IP 地址与 VM 分离。

先决条件

Azure 门户

  1. 登录 Azure 门户

  2. 浏览或搜索要将公共 IP 地址与之取消关联的虚拟机,然后将其选中。

  3. 在 VM 页中选择“概述”,然后选择公共 IP 地址。

    虚拟机“概述”页面的屏幕截图,显示公共 IP。

  4. 在公共 IP 地址页面中,选择“概述”,然后选择“取消关联”。

  5. 在“取消关联公共 IP 地址”中,选择“是”。

    公共 IP 地址资源“概述”页面的屏幕截图,显示如何将其与虚拟机的网络接口取消关联。

Azure CLI

安装 Azure CLI,或使用 Azure Cloud Shell。 Azure Cloud Shell 是可直接在 Azure 门户中运行的免费 shell。 它预安装有 Azure CLI 并将其配置为与帐户一起使用。

  • 如果在 Bash 本地使用 CLI,请使用 az login 登录到 Azure。

公共 IP 地址将关联到 VM 上附加的网络接口的 IP 配置。 使用 az network nic-ip-config update 命令将公共 IP 地址与 IP 配置取消关联。

以下示例将公共 IP 地址 myVMPublicIP 与资源组 myResourceGroup 中现有网络接口 myVMNic(已附加到名为 myVM 的 VM)的 IP 配置 ipconfigmyVM 取消关联。

az network nic ip-config update \
 --name ipconfigmyVM \
 --resource-group myResourceGroup \
 --nic-name myVMNic \
 --public-ip-address null
  • 如果你不知道附加到 VM 的网络接口的名称,请使用 az vm nic list 命令查看名称。 例如,以下命令会列出附加到资源组 myResourceGroup 中 VM myVM 的网络接口的名称:

    az vm nic list --vm-name myVM --resource-group myResourceGroup
    

    输出中包含类似于以下示例的一个或多个行:

    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
    

    在上一示例中,myVMVic 是网络接口的名称。

  • 如果你不知道网络接口的 IP 配置的名称,请使用 az network nic ip-config list 命令来检索名称。 例如,以下命令列出了名为 myResourceGroup 的资源组中名为 myVMNic 的网络接口的 IP 配置的名称:

    az network nic ip-config list --nic-name myVMNic --resource-group myResourceGroup --out table
    

    输出类似于以下示例:

    Name           Primary    PrivateIpAddress    PrivateIpAddressVersion    PrivateIpAllocationMethod    ProvisioningState    ResourceGroup
    ------------   ---------  ------------------  -------------------------  ---------------------------  -------------------  ---------------
    ipconfigmyVM   True       10.0.0.4            IPv4                       Dynamic                      Succeeded            myResourceGroup
    

    在上一示例中,ipconfigmyVM 是 IP 配置的名称。

  • 如果你不知道与 IP 配置关联的公共 IP 地址的名称,请使用 az network nic ip-config show 命令来检索名称。 例如,以下命令会列出资源组 myResourceGroup 中网络接口 myVMNic 的公共 IP 地址的名称:

    az network nic ip-config show --name ipconfigmyVM --nic-name myVMNic --resource-group myResourceGroup --query publicIpAddress.id
    

    输出中包含类似于以下示例的一个或多个行:

    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myVMPublicIP",
    

    在上一示例中,myVMPublicIP 是公共 IP 地址的名称。

PowerShell

安装 PowerShell,或使用 Azure Cloud Shell。 Azure Cloud Shell 是可直接在 Azure 门户中运行的免费 shell。 它预安装有 PowerShell,并配置为与帐户一起使用。

  • 如果在本地使用 PowerShell,请使用 Connect-AzAccount 登录到 Azure。

公共 IP 地址将关联到 VM 上附加的网络接口的 IP 配置。 使用 Get-AzNetworkInterface 命令获取网络接口。 将公共 IP 地址值设置为 null,然后使用 Set-AzNetworkInterface 命令将新 IP 配置写入网络接口。

以下示例将公共 IP 地址 myVMPublicIP 与网络接口 myVMNic(已附加到名为 myVM 的 VM)取消关联。 所有资源位于名为 myResourceGroup 的资源组中。

$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroup myResourceGroup
$nic.IpConfigurations[0].PublicIpAddress = $null
Set-AzNetworkInterface -NetworkInterface $nic
  • 如果你不知道附加到 VM 的网络接口的名称,请使用 Get-AzVM 命令来查看名称。 例如,以下命令会列出附加到资源组 myResourceGroup 中 VM myVM 的网络接口的名称:

    $vm = Get-AzVM -name myVM -ResourceGroupName myResourceGroup
    $vm.NetworkProfile
    

    输出中包含类似于以下示例的一个或多个行:

    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
    

    在上一个示例中,myVMNic 是网络接口的名称。

  • 如果你不知道网络接口的 IP 配置的名称,请使用 Get-AzNetworkInterface 命令检索名称。 例如,以下命令列出了名为 myResourceGroup 的资源组中名为 myVMNic 的网络接口的 IP 配置的名称:

    $nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
    $nic.IPConfigurations.Id
    

    输出中包含类似于以下示例的一个或多个行:

    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfigmyVM"
    

    在上一示例中,ipconfigmyVM 是 IP 配置的名称。

  • 如果你不知道与 IP 配置关联的公共 IP 地址的名称,请使用 Get-AzNetworkInterface 命令来检索名称。 例如,以下命令会列出资源组 myResourceGroup 中网络接口 myVMNic 的公共 IP 地址的名称:

    $nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
    $nic.IPConfigurations.PublicIpAddress.Id
    

    输出中包含类似于以下示例的一个或多个行:

    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
    

    在上一示例中,myVMPublicIP 是公共 IP 地址的名称。

后续步骤

本文介绍了如何将公共 IP 地址与虚拟机取消关联。