如何在 Azure VM 中使用公共静态 IP

2024-03-18

在花了几个小时尝试每个相关的 Azure Power Shell 命令来将虚拟公共 IP 分配给 Azure VM 后,我又回到了原点。令人惊奇的是,这样的基本功能在Azure中却无法完成。

首先,我保留了一个静态IP。然后创建一个虚拟机。然后尝试设置-azurestaticvnetip。它抱怨子网名不能为空。因此,我在Azure门户中创建了一个虚拟网络并创建了一个子网。然后使用 set-azuresubnet -subnetnamessubnet-1。现在它抱怨虚拟网络名称不能为空。问题是序列中的所有命令均不采用 -vnetname 作为参数。

然后我发现这个参数可以在new-azurevm中传递。所以我删除了(多么好的解决方法。我很高兴我没有花时间在虚拟机中配置软件)虚拟机并尝试使用此命令创建。 (此命令中未指定图像参数。我是在提示时输入的)。

new-azurevmconfig -name myvm -instancesize Basic_A2|
add-azureprovisioningconfig -adminusername "myvmadmin" -windows -password "myvmP123"|
set-azuresubnet -subnetnames subnet-1 |
set-azurestaticvnetip -ipaddress 23.101.39.28 |
new-azurevm -servicename myvm -vnetname mynet –Location "East US" -waitforboot

抛出错误-

new-azurevm : BadRequest : The static address 23.101.39.28 doesn't belong to the address space defined by the role's subnets.

这里有什么问题吗?在我看来,这些说明是为虚拟机分配私有IP。为通过 Web 角色创建的虚拟机分配静态 IP 非常容易(只需将公共 IP 名称放入配置文件中即可)。如何为虚拟机分配公共 IP。微软文档仅指出公共 IP 可用于虚拟机,但他们认为每个人都知道如何做到这一点吗?


我认为您需要创建一个区域虚拟网络。这对我有用:

1) 获取当前的网络配置

 Get-AzureVNetConfig -ExportToFile "c:\temp\MyAzNets.netcfg"

2) 打开 MyAzNets.netcfg 并编辑/(添加?)VirtualNetworkSite。我认为这里的关键是位置而不是亲和力组。您保留的 IP/VM 需要位于同一位置。

你应该有这样的东西:

<VirtualNetworkSites>
  <VirtualNetworkSite name="yourvnet" Location="West US">
    <AddressSpace>
      <AddressPrefix>192.168.50.0/24</AddressPrefix>
    </AddressSpace>
    <Subnets>
      <Subnet name="yoursubnet">
        <AddressPrefix>192.168.50.0/24</AddressPrefix>
      </Subnet>
    </Subnets>
  </VirtualNetworkSite>
</VirtualNetworkSites>

3) 将其发送回Azure:

Set-AzureVNetConfig -ConfigurationPath "C:\temp\MyAzNets.netcfg"

4) 在与 vnet 相同的位置添加/获取您的 IP。

Get-AzureReservedIP / New-AzureReservedIP

5) 创建您的虚拟机。

创建或移动虚拟机时,请确保云服务不存在。要移动虚拟机,只需点击管理门户中的捕获按钮并为其指定一个友好的名称,然后删除虚拟机和云服务。

New-AzureVMConfig -Name "my-vm01" -InstanceSize Basic_A2 -ImageName "someimage" -Label "my-vm" | Set-AzureSubnet "**yoursubnet**" | Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 61030 | Add-AzureEndpoint -LocalPort 80 -Name 'HTTP' -Protocol tcp -PublicPort 80 | Add-AzureEndpoint -LocalPort 443 -Name 'HTTPS' -Protocol tcp -PublicPort 443| New-AzureVM -ServiceName "my-vm" -ReservedIPName "**reservedipname**" -Location "West US" -VNetName "**yourvnet**" 

6) 应分配IP。如果运行 Get-AzureReservedIP,它现在应该显示如下内容:

ReservedIPName       : reservedipname
Address              : 127.0.0.1
Id                   : xxx
Label                :
Location             : West US
State                : Created
InUse                : True
ServiceName          : my-vm
DeploymentName       : my-vm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure VM 中使用公共静态 IP 的相关文章

随机推荐