Azure 虚拟机使用 Azure 网络进行内部和外部网络通信。 本教程介绍了如何在虚拟网络中创建多个虚拟机 (VM),以及如何在虚拟机之间配置网络连接。 你将学习如何执行以下操作:

  • 创建虚拟网络
  • 创建虚拟网络子网
  • 使用网络安全组控制网络流量
  • 查看流量规则的实际运行情况

本教程需要 Azure PowerShell 模块 3.6 或更高版本。 运行 Get-Module -ListAvailable AzureRM 即可查找版本。 如果需要升级,请参阅安装 Azure PowerShell 模块

创建 VNet

VNet 是自己的网络在云中的表示形式。 VNet 是对专用于订阅的 Azure 云进行的逻辑隔离。 在 VNet 中,可以找到子网、连接到这些子网的规则,以及从 VM 到子网的连接。

创建任何其他 Azure 资源前,需要使用 New-AzureRmResourceGroup 创建一个资源组。 以下示例在 ChinaEast 位置创建名为 myRGNetwork 的资源组:

PowerShell复制
New-AzureRmResourceGroup -ResourceGroupName myRGNetwork -Location ChinaEast

子网是 VNet 的子资源,有助于使用 IP 地址前缀在 CIDR 块中定义地址空间的段。 可以将 NIC 添加到子网,并连接到 VM,以便为各种工作负荷提供连接。

使用 New-AzureRmVirtualNetworkSubnetConfig 创建子网:

PowerShell复制
$frontendSubnet = New-AzureRmVirtualNetworkSubnetConfig `
-Name myFrontendSubnet `
-AddressPrefix 10.0.0.0/24

通过 New-AzureRmVirtualNetwork 使用 myFrontendSubnet 创建名为 myVNet 的 VNET:

PowerShell复制
$vnet = New-AzureRmVirtualNetwork `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-Name myVNet `
-AddressPrefix 10.0.0.0/16 `
-Subnet $frontendSubnet

创建前端 VM

VM 需要使用虚拟网络接口 (NIC) 在 VNet 中进行通信。 由于将通过 Internet 访问 myFrontendVM,因此它也需要公共 IP 地址。

使用 New-AzureRmPublicIpAddress 创建一个公共 IP 地址:

PowerShell复制
$pip = New-AzureRmPublicIpAddress `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-AllocationMethod Static `
-Name myPublicIPAddress

使用 New-AzureRmNetworkInterface 创建 NIC:

PowerShell复制
$frontendNic = New-AzureRmNetworkInterface `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-Name myFrontendNic `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id

使用 Get-Credential 设置 VM 上管理员帐户所需的用户名和密码。 若要使用这些凭据连接到 VM,请执行其他步骤:

PowerShell复制
$cred = Get-Credential

使用 New-AzureRmVMConfigSet-AzureRmVMOperatingSystemSet-AzureRmVMSourceImageSet-AzureRmVMOSDiskAdd-AzureRmVMNetworkInterface 和 New-AzureRmVM 创建 VM。

PowerShell复制
$frontendVM = New-AzureRmVMConfig `
-VMName myFrontendVM `
-VMSize Standard_D1
$frontendVM = Set-AzureRmVMOperatingSystem `
-VM $frontendVM `
-Windows `
-ComputerName myFrontendVM `
-Credential $cred `
-ProvisionVMAgent `
-EnableAutoUpdate
$frontendVM = Set-AzureRmVMSourceImage `
-VM $frontendVM `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest
$frontendVM = Set-AzureRmVMOSDisk `
-VM $frontendVM `
-Name myFrontendOSDisk `
-DiskSizeInGB 128 `
-CreateOption FromImage `
-Caching ReadWrite
$frontendVM = Add-AzureRmVMNetworkInterface `
-VM $frontendVM `
-Id $frontendNic.Id
New-AzureRmVM `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-VM $frontendVM

安装 Web 服务器

可使用远程桌面会话在 myFrontendVM 上安装 IIS。 需要获取 VM 的公共 IP 地址才能对其进行访问。

可使用 Get-AzureRmPublicIPAddress 获取 myFrontendVM 的公共 IP 地址。 以下示例获取前面创建的 myPublicIPAddress 的 IP 地址:

PowerShell复制
Get-AzureRmPublicIPAddress `
-ResourceGroupName myRGNetwork `
-Name myPublicIPAddress | select IpAddress

请记下此 IP 地址,以便在后续步骤中使用。

使用以下命令创建与 myFrontendVM 的远程桌面会话。 将 替换为你之前记录的地址。 出现提示时,输入创建 VM 时使用的凭据。

复制
mstsc /v:<publicIpAddress>

登录 myFrontendVM 后即可使用单行 PowerShell 安装 IIS,并启用本地防火墙规则以允许 Web 流量。 打开 VM 上 RDP 会话中的 PowerShell 提示符并运行以下命令:

使用 Install-WindowsFeature 运行安装 IIS web 服务器的自定义脚本扩展:

PowerShell复制
Install-WindowsFeature -name Web-Server -IncludeManagementTools

现在可使用公共 IP 地址浏览到 VM 来查看 IIS 站点。

管理内部流量

网络安全组 (NSG) 包含一系列安全规则,这些规则可允许或拒绝流向连接到 VNet 的资源的网络流量。 NSG 可与子网或附加到 VM 的单个 NIC 相关联。 使用 NSG 规则打开或关闭通过端口到 VM 的访问。 创建 myFrontendVM 后,会自动打开入站端口 3389 进行 RDP 连接。

可使用 NSG 配置 VM 的内部通信。 本部分介绍了如何在网络中创建附加子网,并向其分配 NSG 以允许端口 1433 上 myFrontendVM 到 myBackendVM 的连接。 然后,在创建子网时将其分配给 VM。

可通过为后端子网创建 NSG,将内部流量限制为仅从 myFrontendVM 流向 myBackendVM。 以下示例使用 New-AzureRmNetworkSecurityRuleConfig 创建名为 myBackendNSGRule 的 NSG 规则:

PowerShell复制
$nsgBackendRule = New-AzureRmNetworkSecurityRuleConfig `
-Name myBackendNSGRule `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix 10.0.0.0/24 `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 1433 `
-Access Allow

使用 New-AzureRmNetworkSecurityGroup 添加名为 myBackendNSG 的新网络安全组:

PowerShell复制
$nsgBackend = New-AzureRmNetworkSecurityGroup `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-Name myBackendNSG `
-SecurityRules $nsgBackendRule

添加后端子网

使用 Add-AzureRmVirtualNetworkSubnetConfig 将 myBackEndSubnet 添加到 myVNet:

PowerShell复制
Add-AzureRmVirtualNetworkSubnetConfig `
-Name myBackendSubnet `
-VirtualNetwork $vnet `
-AddressPrefix 10.0.1.0/24 `
-NetworkSecurityGroup $nsgBackend
Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
$vnet = Get-AzureRmVirtualNetwork `
-ResourceGroupName myRGNetwork `
-Name myVNet

创建后端 VM

创建后端 VM 的最简单方法是使用 SQL Server 映像。 本教程仅使用数据库服务器创建 VM,但不提供有关访问数据库的信息。

创建 myBackendNic:

PowerShell复制
$backendNic = New-AzureRmNetworkInterface `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-Name myBackendNic `
-SubnetId $vnet.Subnets[1].Id

使用 Get-Credential 设置 VM 上管理员帐户所需的用户名和密码:

PowerShell复制
$cred = Get-Credential

创建 myBackendVM:

PowerShell复制
$backendVM = New-AzureRmVMConfig `
-VMName myBackendVM `
-VMSize Standard_D1
$backendVM = Set-AzureRmVMOperatingSystem `
-VM $backendVM `
-Windows `
-ComputerName myBackendVM `
-Credential $cred `
-ProvisionVMAgent `
-EnableAutoUpdate
$backendVM = Set-AzureRmVMSourceImage `
-VM $backendVM `
-PublisherName MicrosoftSQLServer `
-Offer SQL2016SP1-WS2016 `
-Skus Enterprise `
-Version latest
$backendVM = Set-AzureRmVMOSDisk `
-VM $backendVM `
-Name myBackendOSDisk `
-DiskSizeInGB 128 `
-CreateOption FromImage `
-Caching ReadWrite
$backendVM = Add-AzureRmVMNetworkInterface `
-VM $backendVM `
-Id $backendNic.Id
New-AzureRmVM `
-ResourceGroupName myRGNetwork `
-Location ChinaEast `
-VM $backendVM

虽然使用的映像安装了 SQL Server,但本教程中不会使用 SQL Server。 安装它是为了演示如何配置 VM 来处理 Web 流量以及如何配置 VM 来处理数据库管理。

后续步骤

本教程介绍了如何创建和保护与虚拟机相关的 Azure 网络。

  • 创建虚拟网络
  • 创建虚拟网络子网
  • 使用网络安全组控制网络流量
  • 查看正在运行的流量规则

请继续学习下一教程,了解如何使用 Azure 备份监视和保护虚拟机上的数据。 。

在 Azure 中备份 Windows 虚拟机

立即访问http://market.azure.cn

使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机的更多相关文章

  1. PowerShell管理Azure

    PowerShell第一次连接Azure1.下载Azure SDK,安装azure powershell http://azure.microsoft.com/zh-cn/downloads/?rnd ...

  2. Windows 上安装 Azure PowerShell及Azure PowerShell部署虚拟机

    一.Azure PowerShell部署   1.使用 PowerShellGet 在 Windows 上安装 Azure PowerShell 从 Azure PowerShell 版本 6.0 开 ...

  3. 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像

    本主题介绍如何使用 Azure PowerShell 在 Azure Marketplace 中查找 VM 映像. 创建 Windows VM 时使用此信息来指定 Marketplace 映像. 确保 ...

  4. 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机

    Azure 虚拟机使用 Azure 网络进行内部和外部网络通信. 本教程将指导读者部署两个虚拟机,并为这些 VM 配置 Azure 网络. 本教程中的示例假设 VM 将要托管包含数据库后端的 Web ...

  5. Windows Azure Virtual Network (11) 虚拟网络之间点对点连接VNet Peering

    <Windows Azure Platform 系列文章目录> 在有些时候,我们需要通过VNet Peering,把两个虚拟网络通过内网互通互联.比如: 1.在订阅A里的Virtual N ...

  6. Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering

    <Windows Azure Platform 系列文章目录> 在有些时候,我们需要通过VNet Peering,把两个虚拟网络通过内网互通互联.比如: 1.在订阅A里的Virtual N ...

  7. 使用 PowerShell 管理 Azure 磁盘

    Azure 虚拟机使用磁盘来存储 VM 操作系统.应用程序和数据. 创建 VM 时,请务必选择适用于所需工作负荷的磁盘大小和配置. 本教程介绍如何部署和管理 VM 磁盘. 学习内容: OS 磁盘和临时 ...

  8. [New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 注:本章内容和之前的[New Portal]Windows Azure Virtual Machine (12) 在本地制作 ...

  9. Azure ARM (22) 使用Azure PowerShell创建Azure RM VM

    <Windows Azure Platform 系列文章目录> 在Azure China获得VM Image,可以执行下面的脚本. Get-AzureRmVMImagePublisher ...

随机推荐

  1. 全网最详细的Windows系统里Oracle 11g R2 Client客户端(64bit)安装后的初步使用(图文详解)

    不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1)   打开服务(cmd— ...

  2. 五:理解控件的运行机制(例:基于Control命名空间的简单控件)

    一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 Sy ...

  3. TCP保活的必要性

    TCP的长连接理论上只要连接建立后,就会一直保持着.但有时有一些防火墙之类的软件会自动检查主机的网络连接状况,比如说如果发现某个连接在几分钟之内都没有数据通讯,则会关闭这个连接.有时客户端与服务器需要 ...

  4. Nginx配置资源下载目录

    访问我的博客 之前在网上找 CentOs 的镜像的时候,发现了阿里云的这个镜像源,速度蛮快的.今天也来搭建一个类似的站,使用 nginx 作为资源下载服务器. 图片详情: 安装 Nginx 参考这篇教 ...

  5. CentOS 7通过RVM来安装指定版本的Ruby

    RVM也就是Ruby Version Manager,Ruby版本管理器 1.安装依赖库: yum install gcc-c++ patch readline readline-devel zlib ...

  6. 使用显式的Lock对象取代synchronized关键字进行同步

    Java SE5的java.util.concurrent类库还包含有定义在java.util.concurrent.locks中的显式的互斥机制.Lock对象必须被显式地创建.锁定和释放.因此,它与 ...

  7. RedHat Linux下MQ安装步骤及MQ常用命令

    1.检查操作系统及内存情况:lsb_release -a; 2   检查java 环境:java -version 3   新建用户空间.用户和组: //创建用户目录 mkdir /home/mqm ...

  8. HashMap底层原理分析(put、get方法)

    1.HashMap底层原理分析(put.get方法) HashMap底层是通过数组加链表的结构来实现的.HashMap通过计算key的hashCode来计算hash值,只要hashCode一样,那ha ...

  9. MVC会员注册

    自从写了<数据库数据加密与解密>http://www.cnblogs.com/insus/p/3434735.html.其中也有提及Insus.NET将要在MVC应用程序中实现会员注册的功 ...

  10. Bower前端模块管理器

    cnpm install bower -g 安装bower bower install jquery //bower会自动去网上找到最新版本的jquery bower uninstall jquery ...