Windows Azure Virtual Network (5) 设置Azure Virtual Machine固定Private IP
《Windows Azure Platform 系列文章目录》
注意:本文介绍的是Global Azure (http://www.windowsazure.com),如果你使用的是由世纪互联运维的Azure China,请参考下面的连接。
Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP
熟悉Azure Virtual Network的读者都知道,如果我们设置了Azure Virtual Network (VNet)的IP Rang是xxx.xxx.0.0 - xxx.xxx.0.255
那第一个加入VNet的虚拟机Private IP为0.4(0.0到0.3的IP地址被系统占用),第二个加入VNet的虚拟机Private IP为0.5,以后加入VNet的虚拟机Private IP地址为在已创建的Azure Private IP上加1。
但是这样会产生3个问题:
1.不能手动设置Private IP地址,Private IP是系统自动生成的,无法预先设置。
2.无法修改Private IP地址。在系统自动分配Private IP之后,想手动修改Private IP也是不可能的。
3.无法固定Private IP地址。在某些情况下,Azure管理人员关闭了VM,造成VM的状态为Stop(Deallocate)的情况下,再次启动Azure VM会造成Private IP改变。
最新的PowerShell (版本号: PowerShell cmdlets for Windows Azure Version 0.7.3)命令增加了新的PowerShell命令,允许用户设置Azure VM Private IP。这4个命令是:
- Get-AzureStaticVNetIP
- Set-AzureStaticVNetIP
- Remove-AzureStaticVNetIP
- Test-AzureStaticVNetIP
接下来,笔者会详细介绍以上的PowerShell命令。
在开始演示之前,请按照[New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine中的内容,通过PowerShell将本地证书上传至Azure云端。
在上一章内容中,笔者已经创建Azure Virtual Network:MyVNet。同时创建了2台Azure VM,分别为:
| IP | 说明 |
| 192.168.0.0-192.168.0.3 | Azure Virtual Network 保留 |
| 192.168.0.4 | AD Server |
| 192.168.0.5 | Web Server 001 |
在这里,笔者将介绍如何创建第2台Web服务器,即Web Server 002进行负载均衡,并且观察Web Server 002的Private IP设置。
1.确认某个Private IP是否可用
我们要用到的命令是Test-AzureStaticVNetIP:
Test-AzureStaticVNetIP –VNetName <VNetName> –IPAddress <Address>
比如我要查询MyVNet这个虚拟网络中,Private IP为192.168.0.4是否可用,PowerShell命令为:
Test-AzureStaticVNetIP –VNetName MyVNet –IPAddress 192.168.0.4
执行结果为:

可以看到IsAvailable值为False(因为192.168.0.4已经被AD Server占用了)。
然后Azure会在AvailableAddresses中,提供其他可用的IP地址,比如192.168.0.6,192.168.0.7等等
2.创建新的虚拟机,同时设置Private IP
我们用到的命令是Set-AzureStaticVNetIP
Set-AzureStaticVNetIP -IPAddress <YourIPAddress>
来创建个更加复杂的Azure Virtual Machine
首先我们指定默认的存储,在Powershell输入以下命令:
Set-AzureSubscription -SubscriptionName 'Windows Azure MSDN - Visual Studio Ultimate' -CurrentStorageAccount 'leivms'
按照以下规格创建虚拟机:
- DNS Name为LeiWeb (需要负载均衡)
- 显示名称为LeiWeb002
- VM Size为Basic_A1 (1Core/1.75GB)
- VM Image为Windows Server 2012 DataCenter 201403.01-en.us
- Windows用户名为leizhang,密码为Pass@word1
- storage account为leivms
- 地缘组为EastAsiaGroup
- 虚拟网络为 MyVNet,子网为Subnet-1
- Private IP设置为192.168.0.7
然后我们输入以下命令:
$vm = New-AzureVMConfig -Name 'LeiWeb002' -InstanceSize Basic_A1 -ImageName (Get-AzureVMImage)[].ImageName $vm | Add-AzureProvisioningConfig ` -Windows ` -AdminUsername 'leizhang' ` -Password 'Pass@word1' $vm | Set-AzureSubnet -SubnetNames 'Subnet-1' | Set-AzureStaticVNetIP -IPAddress 192.168.0.7 $vm | New-AzureVM -ServiceName 'LeiWeb' -VNetName 'MyVNet'
执行结果,如下图:

我们也可以在Management Portal上查看到Azure正在开始创建LeiWeb002这台虚拟机,截图下图:

执行完毕后,我们可以查看到虚拟机LeiWeb002的Private IP设置为 192.168.0.7。如下图:

另外告诉各位读者一个特大喜讯:如果你在VNet中的Virtual Machine已经通过Set-AzureStaticVNetIP命令,设置了Private IP。
即使你的VM关机后状态变成Stop_Deallocate,重新开机后这台VM的Private IP还是不会改变的。 O YEAH!!!
3.修改Private IP
这里用到的命令为Set-AzureStaticVNetIP
Set-AzureStaticVNetIP -IPAddress <NewIPAddress>
之前笔者创建的LeiWeb002的Private IP为192.168.0.7,如果需要重新设置怎么办?
LeiWeb002这台虚拟机的信息如下:
- DNS: LeiWeb.cloudapp.net
- Virtual Machine: LeiWeb002
- 设置新的Private IP : 192.168.0.6
然后执行以下PowerShell命令:
Get-AzureVM -ServiceName LeiWeb -Name LeiWeb002 | Set-AzureStaticVNetIP -IPAddress 192.168.0.6 | Update-AzureVM
执行结果截图如下:

我们可以通过Management Portal查看LeiWeb002这台虚拟机的Private IP已经被修改为192.168.0.6

最后我们回顾一下配置的虚拟机信息:
| IP | 说明 |
| 192.168.0.0-192.168.0.3 | Azure Virtual Network 保留 |
| 192.168.0.4 | AD Server |
| 192.168.0.5 | Web Server 001 |
| 192.168.0.6 | Web Server 002 |
Windows Azure Virtual Network (5) 设置Azure Virtual Machine固定Private IP的更多相关文章
- Windows Azure Virtual Network (7) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (2)
<Windows Azure Platform 系列文章目录> 本文介绍的是,当用户在创建Azure Virtual Machine的时候,忘记绑定公网IP,需要重新绑定公网IP的具体操作 ...
- Windows Azure Virtual Network (6) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (1)
<Windows Azure Platform 系列文章目录> 注意:本文介绍的是Global Azure (http://www.windowsazure.com),如果你使用的是由世纪 ...
- Windows Azure Virtual Network (8) 创建Azure Point-to-Site点到站点 VPN
<Windows Azure Platform 系列文章目录> 我们在使用Azure的时候,常常有这样的需求: -我需要将企业内网的主机连接到微软Azure公有云平台 -我需要保证企业内部 ...
- Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的China Azure. 我们在创建完Windows Azure Virtual Machi ...
- Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG)
<Windows Azure Platform 系列文章目录> 刚刚在帮助一个合作伙伴研究需求,他们的虚拟机全面的网络安全组(Network Security Group, NSG)会经常 ...
- [SDK2.2]Windows Azure Virtual Network (1) 概念
<Windows Azure Platform 系列文章目录> Windows Azure Virtual Network是非常重要的概念,其主要作用有以下两点: 1.将多台Azure V ...
- Windows Azure Cloud Service (44) 将Cloud Service加入Virtual Network Subnet,并固定Virtual IP Address(VIP)
<Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经详细介绍了如何将Virtual Machine加入Virtual Network,并且绑定固定的Pr ...
- Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP
<Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...
- Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
<Windows Azure Platform 系列文章目录> 我们知道,Azure Virtual Network可以 1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址 ...
随机推荐
- 如何禁用Marlin温度保护
最近在玩3D打印,搞了套MEGA 2560 + RAMPS 1.4 + A4988,刷Marlin(https://github.com/MarlinFirmware/Marlin)固件,接上电机调试 ...
- ENode 1.0 - 事件驱动架构(EDA)思想的在框架中如何体现
开源地址:https://github.com/tangxuehua/enode 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用很多 ...
- 谈谈final的作用
前言 一直想写写这个话题.代表公司也面试过一些求职者,每次面试我必问的两个问题之一就是“请你谈一谈对于final关键字的理解”.这是一个简单的小问题,但是不要小看它,通过对这个问题的回答以及一些简单的 ...
- C#调试入门篇
DotNet程序的调试,是DotNet程序员必备的技能之一,开发出稳定的程序.解决程序的疑难杂症都需要很强大的调试能力.DotNet调试有很多方法和技巧.现在本文就介绍一下借助DebugView工具进 ...
- java提高篇(十二)-----代码块
在编程过程中我们可能会遇到如下这种形式的程序: public class Test { { //// } } 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起, ...
- 初识jsonp
jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案.很多时候我们需要在客户端获取服务器数据进行操作,一般我们会使用ajax+webservice做此事,但是如 ...
- Winform文件下载之WebClient
最近升级了公司内部使用的一个下载小工具,主要提升了下面几点: 1. 在一些分公司的局域网中,连接不上外网 2. 服务器上的文件更新后,下载到的还是更新前的文件 3. 没有下载进度提示 4. 不能终止下 ...
- 开启Ubuntu root 远程登录
很早就遇到这问题了,但是今天才想到解决.也就是说Ubuntu在安装的时候,远程SSH登录是禁止的.每次你必须使用普通的用户SSH远程登录以后,然后su切换到root这样,对于强迫症的我实在是很难容忍的 ...
- 基础才是重中之重~stream和byte[]的概念与转化
回到目录 多看几篇 之所以写这篇文章完全是因为最近在研究FastDFS这个分布式的文件存储系统,当然这不是我第一次研究它了,就像我们去看一本书,我们不会只看一篇,而是一次次,一篇篇,每看一次会有新的收 ...
- paip.mysql 性能测试by mysqlslap
paip.mysql 性能测试by mysqlslap 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog. ...