大家都知道我们默认创建的Azure虚拟机的内部IP地址都是从DHCP自动获取的,如果自己创建了虚拟网络,那我们的虚拟机会获取我们创建虚拟网络子网中的IP地址,那么如果我们想要指定IP地址怎么办,自动获取的IP地址在哪种情况下可能会有问题

1、和传统我们部署的DHCP一样的,每台服务器自动获取的IP地址在重启服务器之后可能会发生变化,这种场景本身并不适合服务器使用;

2Azure上的云服务要保留固定的公用虚拟IP地址,那么至少要求此云服务上至少有一个开启的虚拟机,假如云服务或虚拟机暂时关闭,再重新启动起来,那么此云服务上的公用IP地址就会改变。

所以我们需要为虚拟机配置固定IP地址,在这里我们先说怎样配置固定的内部IP

首先我们先看一下当前创建的虚拟机的IP地址:

公用虚拟IP168.63.203.48

内部IP10.0.1.4

wKioL1YaER2yR6djAAKHrM4pmH4957.jpg

我们要改虚拟机的IP地址,需要使用Azure powershell

首先下载一个.publishsettings文件导入Azure powershell中为我们提供管理订阅的凭证

打开Azure Powershell 输入以下命令下载publishsettings文件

国内版Azure:Get-AzurePublishSettingsFile -Environment AzureChinaCloud

国际版AzureGet-AzurePublishSettingsFile -Environment AzureCloud

我这里使用国际版做演示所以如图:


wKiom1YaEQGi0vnjAAMYYGtnHNQ095.jpg

下一步将文件导入到Azure Powershell中,才能使用Azure powershell管理订阅,这里我为了方便把文件所有的空格都删除了,命令如下:

Import-AzurePublishSettingsFile -PublishSettingsFile <publishsetting文件路径>

wKiom1YaEQGxmzh8AAOZ-one4cI033.jpg

下面指定订阅的管理账户

国内版:Add-AzureAccount -Environment AzureChinacloud

国际版:Add-AzureAccount -Environment Azurecloud

wKioL1YaER_x8cA3AAM6umcvm-E691.jpg

登录账户


wKiom1YaEQShr-llAAV4JA7pv2g615.jpg

使用以下命令为虚拟机指定IP地址

get-azurevm -servicename arvincloud -name vm01 |set-azuresubnet -subnetnames 'subnet-1'| set-azurestaticvnetip -ipaddress 10.0.1.8 | UPdate-azurevm

等待命令更新 显示succeeded


wKioL1YaER-yhKh0AAJG6MN3GAQ640.jpg


等待更新虚拟机并重启虚拟机之后 查看虚拟机IP地址,这里看到已成功更改为10.0.1.8


wKiom1YaEQSTgJCdAAKQFKcRW3k988.jpg

portal上点击关闭虚拟机,等待虚拟机状态显示为已停止,再打开虚拟机,查看获取到的IP地址依然是更改之后的10.0.1.8,进虚拟机看也是一样,完成!

wKioL1YaESCCCVu4AAGSO752CTg710.jpg

wKiom1YaEQXStTf2AAH2N32tkBA782.jpg