创建虚拟机 (VM) 后,系统会从指定的范围自动为虚拟机分配专用 IP 地址。 此 IP 地址基于在其中部署 VM 的子网,VM 会将此地址保留到删除 VM 之时。 Azure从在其中创建 VM 的子网动态分配下一个可用的专用 IP 地址。 如果要为 VM 分配此子网中的特定 IP 地址,请使用静态 IP 地址。
先决条件
- 具有活动订阅的Azure帐户。
创建帐户。
- 在本地安装Azure PowerShell。
- 如果选择在本地安装和使用 PowerShell,本文需要 Azure PowerShell 模块版本 5.4.1 或更高版本。
- 运行
Get-Module -ListAvailable Az 查找已安装的版本。
- 如果需要升级,请参阅 Install Azure PowerShell 模块。 如果在本地运行 PowerShell,则还需要运行
Connect-AzAccount 来创建与Azure的连接。
可以使用本地Azure CLI。
- 具有活动订阅的Azure帐户。
创建帐户。
- 本教程需要 2.0.28 或更高版本的 Azure CLI。 如果使用Azure Cloud Shell,则已安装最新版本。
创建资源组和虚拟机
创建资源组
登录到 Azure portal。
在门户中,搜索并选择“资源组”。
选择+ 新建。
在 “基本信息 ”选项卡上,输入或选择以下值:
| 设置 |
值 |
|
订阅 |
选择订阅 |
|
资源组 |
输入 myResourceGroup |
|
区域 |
选择“(亚洲)中国北部 3” |
选择“查看 + 创建”,然后选择“创建”。
创建虚拟网络
在门户中,搜索并选择“虚拟网络”。
选择+ 新建。
在“创建虚拟网络的”基本信息“选项卡上,输入或选择以下值:
| 设置 |
值 |
|
订阅 |
选择订阅 |
|
资源组 |
选择“myResourceGroup” |
|
虚拟网络名称 |
输入“myVNet” |
|
区域 |
选择“(亚洲)中国北部 3” |
选择“查看 + 创建”,然后选择“创建”。
创建虚拟机
在门户中,搜索并选择Virtual machines。
选择 创建>Azure 虚拟机。
在“创建虚拟机”屏幕的“基本信息”选项卡上,输入或选择以下值:
| 设置 |
值 |
|
订阅 |
选择订阅 |
|
资源组 |
选择“myResourceGroup” |
|
虚拟机名称 |
输入myVM |
|
区域 |
选择“(亚洲)中国北部 3” |
|
可用性选项 |
选择“无需基础结构冗余” |
|
安全类型 |
选择“标准” |
|
图像 |
选择 Ubuntu Server 22.04 LTS - x64 Gen2 |
|
大小 |
接受默认值,或者下拉并选择大小 |
|
身份验证类型 |
选择“SSH 公钥” |
|
用户名 |
输入 azureuser |
|
SSH 公钥源 |
选择“生成新密钥对” |
|
密钥对名称 |
输入 mySSHKey |
|
公共入站端口 |
选择“无” |
选择页面顶部的“网络”选项卡。
在“网络”页面,输入或选择以下值:
-
虚拟网络:选择 myVNet。
-
子网:选择“默认值”(如果尚未选择)。
-
公共 IP:选择 “无”。
选择“查看 + 创建”。 检查设置,然后选择“创建”。
使用以下步骤创建资源组、虚拟网络和虚拟机。
创建资源组
以下命令使用 New-AzResourceGroup 创建一个资源组。
## Create resource group. ##
$rg = @{
Name = 'myResourceGroup'
Location = 'eastus2'
}
New-AzResourceGroup @rg
创建虚拟网络和子网
以下命令使用 New-AzVirtualNetwork 和 Add-AzVirtualNetworkSubnetConfig 创建虚拟网络和子网。
## Create subnet configuration. ##
$subnet = @{
Name = 'default'
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create virtual network. ##
$vnet = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig
}
New-AzVirtualNetwork @vnet
创建网络安全组
使用 New-AzNetworkSecurityGroup 创建网络安全组。 网络安全组中的默认规则拒绝来自 Internet 的所有入站访问。
## Create network security group. ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
Location = 'chinanorth3'
}
New-AzNetworkSecurityGroup @nsg
创建虚拟机
使用 Get-Credential 为虚拟机创建凭据对象。 出现提示时输入用户名和密码:
$cred = Get-Credential
以下命令使用 New-AzVM 创建不带公共 IP 地址的 Linux 虚拟机。 该 -GenerateSshKey 参数为 VM 生成 SSH 密钥对:
## Create virtual machine. ##
$vm = @{
ResourceGroupName = 'myResourceGroup'
Location = 'China North 3'
Name = 'myVM'
Image = 'Ubuntu2204'
Credential = $cred
VirtualNetworkName = 'myVNet'
SubnetName = 'default'
PublicIpAddressName = ''
GenerateSshKey = $true
SshKeyName = 'mySSHKey'
}
New-AzVM @vm
使用以下步骤创建资源组、虚拟网络和虚拟机。
创建资源组
以下命令创建包含 az group create 的资源组:
az group create \
--name myResourceGroup \
--location chinanorth3
创建虚拟网络和子网
以下命令使用 az network vnet create 创建虚拟网络和子网:
az network vnet create \
--name myVNet \
--resource-group myResourceGroup \
--location chinanorth3 \
--address-prefixes 10.0.0.0/16 \
--subnet-name default \
--subnet-prefixes 10.0.0.0/24
创建网络安全组
使用 az network nsg create 创建网络安全组。 网络安全组中的默认规则拒绝来自 Internet 的所有入站访问。
az network nsg create \
--resource-group myResourceGroup \
--name myNSG
创建虚拟机
以下命令使用 az vm create 创建不带公共 IP 地址的 Linux 虚拟机。 该 --generate-ssh-keys 参数为 VM 生成 SSH 密钥对:
az vm create \
--name myVM \
--resource-group myResourceGroup \
--vnet-name myVNet \
--subnet default \
--image Ubuntu2204 \
--public-ip-address "" \
--admin-username azureuser \
--generate-ssh-keys
将专用 IP 地址更改为静态
在以下步骤中,你将之前创建的 VM 的专用 IP 地址更改为静态:
在门户中,搜索并选择Virtual machines。
在 Virtual machines 中,从列表中选择 myVM。
在“myVM”页上,在“网络”下选择“网络设置”。
在“网络设置”页上,选择“网络接口”旁边的网络接口名称。
在“网络接口”页的“设置”下,选择“IP 配置”。
在“IP 配置”中,选择列表中的“ipconfig1”。
在“分配”下,选择“静态”。 更改专用 IP 地址(如果需要其他 IP 地址),然后选择“保存”。
警告
如果更改专用 IP 地址,与网络接口关联的 VM 将重启以利用新的 IP 地址。
在 VM 的操作系统中,避免在 Azure VM 上关联静态 private IP 地址。 仅在必要的情况下(例如,要向 VM 分配许多 IP 地址时),才分配静态专用 IP 地址。
如果手动在作系统中设置专用 IP 地址,请确保它与分配给 Azure network 接口的专用 IP 地址匹配。 否则,与 VM 的连接可能会断开。 有关详细信息,请参阅专用 IP 地址设置。
Azure PowerShell用于将专用 IP 地址更改为静态的 cmdlet 如下所示:
使用以下命令,你将虚拟机专用 IP 地址更改为静态:
## Place virtual network configuration into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place subnet configuration into a variable. ##
$sub = @{
Name = 'default'
VirtualNetwork = $vnet
}
$subnet = Get-AzVirtualNetworkSubnetConfig @sub
## Get name of network interface and place into a variable ##
$int1 = @{
Name = 'myVM'
ResourceGroupName = 'myResourceGroup'
}
$vm = Get-AzVM @int1
## Place network interface configuration into a variable. ##
$nic = Get-AzNetworkInterface -ResourceId $vm.NetworkProfile.NetworkInterfaces.Id
## Set interface configuration. ##
$config =@{
Name = 'myVM'
PrivateIpAddress = '10.0.0.4'
Subnet = $subnet
}
$nic | Set-AzNetworkInterfaceIpConfig @config -Primary
## Save interface configuration. ##
$nic | Set-AzNetworkInterface
警告
在 VM 的操作系统中,不应静态分配已分配给 Azure VM 的 private IP。 仅在必要的情况下(例如,要向 VM 分配许多 IP 地址时),才执行专用 IP 的静态分配。
如果手动在作系统中设置专用 IP 地址,请确保它与分配给 Azure network 接口的专用 IP 地址匹配。 否则,与 VM 的连接可能会断开。 详细了解专用 IP 地址设置。
使用 az network nic ip-config update 更新网络接口配置。
使用以下命令,你将虚拟机专用 IP 地址更改为静态:
az network nic ip-config update \
--name ipconfigmyVM \
--resource-group myResourceGroup \
--nic-name myVMVMNic \
--private-ip-address 10.0.0.4
警告
在 VM 的操作系统中,不应静态分配已分配给 Azure VM 的 private IP。 仅在必要的情况下(例如,要向 VM 分配许多 IP 地址时),才执行专用 IP 的静态分配。
如果手动在作系统中设置专用 IP 地址,请确保它与分配给 Azure network 接口的专用 IP 地址匹配。 否则,与 VM 的连接可能会断开。 详细了解专用 IP 地址设置。
清理资源
不再需要所有资源时,将资源组及其包含的所有资源一并删除:
在门户中搜索并选择“myResourceGroup”。
在“myResourceGroup”屏幕中,选择“删除资源组”。
在“输入资源组名称以确认删除”中输入“myResourceGroup”,然后选择“删除”。
当不再需要所有资源时,请使用 az group delete 删除资源组及其包含的所有资源:
az group delete --name myResourceGroup --yes
后续步骤