在此步骤中,你将使用 Azure 门户、Azure CLI 或 Azure PowerShell 将公共 IP 地址与虚拟机取消关联。 IP 地址与连接到 VM 的网络接口的 IP 配置相关联。
- 登录到 Azure 门户。
- 浏览或搜索要将公共 IP 地址与之取消关联的虚拟机,然后将其选中。
- 在 VM 页中选择“概述”,然后选择公共 IP 地址。
- 在公共 IP 地址页面中,选择“概述”,然后选择“取消关联”。
- 在“取消关联公共 IP 地址”中,选择“是”。
在此任务中,你将使用 az network nic-ip-config update 命令将公共 IP 地址与 IP 配置取消关联。
取消关联 IP 地址
以下示例将公共 IP 地址 myVMPublicIP 与资源组 myResourceGroup 中现有网络接口 myVMNic(已附加到名为 myVM 的 VM)的 IP 配置 ipconfigmyVM 取消关联。
# Dissociate the public IP address from the IP configuration
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 的网络接口的名称:
# List the network interfaces attached to a VM
az vm nic list --vm-name myVM --resource-group myResourceGroup
输出中包含类似于以下示例的一个或多个行:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
在上一示例中,myVMVic 是网络接口的名称。
发现 IP 配置的名称
如果你不知道网络接口的 IP 配置的名称,请使用 az network nic ip-config list 命令来检索名称。 例如,以下命令列出了名为 myResourceGroup 的资源组中名为 myVMNic 的网络接口的 IP 配置的名称:
# List the IP configurations of a network interface
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 配置关联的公共 IP 地址的名称,请使用 az network nic ip-config show 命令来检索名称。 例如,以下命令会列出资源组 myResourceGroup 中网络接口 myVMNic 的公共 IP 地址的名称:
# Get the name of public IP address associated to an IP configuration
az network nic ip-config show --name ipconfigmyVM --nic-name myVMNic --resource-group myResourceGroup --query publicIpAddress.id
输出中包含类似于以下示例的一个或多个行:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myVMPublicIP",
在上一示例中,myVMPublicIP 是公共 IP 地址的名称。
在此任务中,你将使用 Get-AzNetworkInterface 命令获取网络接口。 将公共 IP 地址值设置为 null,然后使用 Set-AzNetworkInterface 命令将新 IP 配置写入网络接口。
取消关联 IP 地址
以下示例将公共 IP 地址 myVMPublicIP 与网络接口 myVMNic(已附加到名为 myVM 的 VM)取消关联。 所有资源位于名为 myResourceGroup 的资源组中。
# Dissociate the public IP address from the network interface
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroup myResourceGroup
$nic.IpConfigurations[0].PublicIpAddress = $null
Set-AzNetworkInterface -NetworkInterface $nic
发现网络接口的名称
如果你不知道附加到 VM 的网络接口的名称,请使用 Get-AzVM 命令来查看名称。 例如,以下命令会列出附加到资源组 myResourceGroup 中 VM myVM 的网络接口的名称:
# Get the network interface attached to a VM
$vm = Get-AzVM -name myVM -ResourceGroupName myResourceGroup
$vm.NetworkProfile
输出中包含类似于以下示例的一个或多个行:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
在上一个示例中,myVMNic 是网络接口的名称。
发现 IP 配置的名称
如果你不知道网络接口的 IP 配置的名称,请使用 Get-AzNetworkInterface 命令检索名称。 例如,以下命令列出了名为 myResourceGroup 的资源组中名为 myVMNic 的网络接口的 IP 配置的名称:
# Get the name of the IP configuration for a network interface
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations.Id
输出中包含类似于以下示例的一个或多个行:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfigmyVM"
在上一示例中,ipconfigmyVM 是 IP 配置的名称。
发现公共 IP 地址的名称
如果你不知道与 IP 配置关联的公共 IP 地址的名称,请使用 Get-AzNetworkInterface 命令来检索名称。 例如,以下命令会列出资源组 myResourceGroup 中网络接口 myVMNic 的公共 IP 地址的名称:
# Get the name of the public IP address associated to an IP configuration
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations.PublicIpAddress.Id
输出中包含类似于以下示例的一个或多个行:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
在上一示例中,myVMPublicIP 是公共 IP 地址的名称。