Snabbstart: Använda Azure PowerShell för att skapa ett virtuellt nätverk
Den här snabbstarten visar hur du skapar ett virtuellt nätverk med hjälp av Azure PowerShell. Sedan skapar du två virtuella datorer i nätverket, ansluter säkert till de virtuella datorerna från Internet och startar privat kommunikation mellan de virtuella datorerna.
Ett virtuellt nätverk är den grundläggande byggstenen för privata nätverk i Azure. Med Azure Virtual Network kan Azure-resurser som virtuella datorer kommunicera säkert med varandra och Internet.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration. Du kan skapa ett konto kostnadsfritt.
Azure Cloud Shell eller Azure PowerShell.
Stegen i den här snabbstarten kör Azure PowerShell-cmdletarna interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloudshell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra sedan in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell inifrån Azure-portalen.
Du kan också installera Azure PowerShell lokalt för att köra cmdletarna. Stegen i den här artikeln kräver Azure PowerShell-modulversion 5.4.1 eller senare. Kör
Get-Module -ListAvailable Az
för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Uppdatera Azure PowerShell-modulen.Om du kör PowerShell lokalt kör du
Connect-AzAccount
för att ansluta till Azure.
Skapa en resursgrupp
Använd New-AzResourceGroup för att skapa en resursgrupp som värd för det virtuella nätverket. Kör följande kod för att skapa en resursgrupp med namnet test-rg i Azure-regionen eastus2 :
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Skapa ett virtuellt nätverk
Använd New-AzVirtualNetwork för att skapa ett virtuellt nätverk med namnet vnet-1 med IP-adressprefixet 10.0.0.0/16 i resursgruppen test-rg och eastus2 :
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure distribuerar resurser till ett undernät i ett virtuellt nätverk. Använd Add-AzVirtualNetworkSubnetConfig för att skapa en undernätskonfiguration med namnet subnet-1 med adressprefixet 10.0.0.0/24:
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Associera undernätskonfigurationen med det virtuella nätverket med hjälp av Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
Distribuera Azure Bastion
Azure Bastion använder webbläsaren för att ansluta till virtuella datorer i ditt virtuella nätverk via Secure Shell (SSH) eller Remote Desktop Protocol (RDP) med hjälp av sina privata IP-adresser. De virtuella datorerna behöver inte offentliga IP-adresser, klientprogramvara eller särskild konfiguration. Mer information om Bastion finns i Vad är Azure Bastion?.
Priserna per timme börjar från det ögonblick då Bastion distribueras, oavsett utgående dataanvändning. Mer information finns i Priser och SKU:er. Om du distribuerar Bastion som en del av en självstudie eller ett test rekommenderar vi att du tar bort den här resursen när du har använt den.
Konfigurera ett Bastion-undernät för ditt virtuella nätverk. Det här undernätet är endast reserverat för Bastion-resurser och måste ha namnet AzureBastionSubnet.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Ange konfigurationen:
$virtualNetwork | Set-AzVirtualNetwork
Skapa en offentlig IP-adress för Bastion. Bastion-värden använder den offentliga IP-adressen för att få åtkomst till SSH och RDP via port 443.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
Använd kommandot New-AzBastion för att skapa en ny Standard SKU Bastion-värd i AzureBastionSubnet:
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Det tar cirka 10 minuter att distribuera Bastion-resurserna. Du kan skapa virtuella datorer i nästa avsnitt medan Bastion distribueras till ditt virtuella nätverk.
Skapa virtuella datorer
Använd New-AzVM för att skapa två virtuella datorer med namnet vm-1 och vm-2 i undernätet-1 i det virtuella nätverket. När du uppmanas att ange autentiseringsuppgifter anger du användarnamn och lösenord för de virtuella datorerna.
Använd följande kod för att skapa den första virtuella datorn:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-1" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-1" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-1" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Använd följande kod för att skapa den andra virtuella datorn:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-2" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-2" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-2" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Dricks
Du kan använda alternativet -AsJob
för att skapa en virtuell dator i bakgrunden medan du fortsätter med andra uppgifter. Kör till exempel New-AzVM @vm1 -AsJob
. När Azure börjar skapa den virtuella datorn i bakgrunden får du ungefär följande utdata:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
Azure tar några minuter att skapa de virtuella datorerna. När Azure har skapat de virtuella datorerna returneras utdata till PowerShell.
Kommentar
Virtuella datorer i ett virtuellt nätverk med en Bastion-värd behöver inte offentliga IP-adresser. Bastion tillhandahåller den offentliga IP-adressen och de virtuella datorerna använder privata IP-adresser för att kommunicera i nätverket. Du kan ta bort offentliga IP-adresser från alla virtuella datorer i virtuella Bastion-värdbaserade nätverk. Mer information finns i Koppla bort en offentlig IP-adress från en virtuell Azure-dator.
Kommentar
Azure tillhandahåller en standard-IP för utgående åtkomst för virtuella datorer som antingen inte har tilldelats någon offentlig IP-adress eller som finns i serverdelspoolen för en intern grundläggande Azure-lastbalanserare. Ip-mekanismen för utgående åtkomst har en utgående IP-adress som inte kan konfigureras.
Standard-IP för utgående åtkomst inaktiveras när någon av följande händelser inträffar:
- En offentlig IP-adress tilldelas till den virtuella datorn.
- Den virtuella datorn placeras i serverdelspoolen för en standardlastbalanserare, med eller utan regler för utgående trafik.
- En Azure NAT Gateway-resurs tilldelas till den virtuella datorns undernät.
Virtuella datorer som du skapar med hjälp av vm-skalningsuppsättningar i flexibelt orkestreringsläge har inte standardåtkomst till utgående trafik.
Mer information om utgående anslutningar i Azure finns i Standardutgående åtkomst i Azure och Använda SNAT (Source Network Address Translation) för utgående anslutningar.
Ansluta till en virtuell dator
I portalen söker du efter och väljer Virtuella datorer.
På sidan Virtuella datorer väljer du vm-1.
I Översiktsinformation för vm-1 väljer du Anslut.
På sidan Anslut till virtuell dator väljer du fliken Bastion .
Välj Använd Bastion.
Ange användarnamnet och lösenordet som du skapade när du skapade den virtuella datorn och välj sedan Anslut.
Starta kommunikationen mellan virtuella datorer
I bash-prompten för vm-1 anger du
ping -c 4 vm-2
.Du får ett svar som liknar följande meddelande:
azureuser@vm-1:~$ ping -c 4 vm-2 PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data. 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
Stäng Bastion-anslutningen till vm-1.
Upprepa stegen i Anslut till en virtuell dator för att ansluta till vm-2.
I bash-prompten för vm-2 anger du
ping -c 4 vm-1
.Du får ett svar som liknar följande meddelande:
azureuser@vm-2:~$ ping -c 4 vm-1 PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data. 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
Stäng Bastion-anslutningen till vm-2.
Rensa resurser
När du är klar med det virtuella nätverket och de virtuella datorerna använder du Remove-AzResourceGroup för att ta bort resursgruppen och alla dess resurser:
Remove-AzResourceGroup -Name 'test-rg' -Force
Nästa steg
I den här snabbstarten skapade du ett virtuellt nätverk med ett standardundernät som innehåller två virtuella datorer. Du distribuerade Azure Bastion och använde den för att ansluta till de virtuella datorerna och kommunicerade säkert mellan de virtuella datorerna. Mer information om inställningar för virtuella nätverk finns i Skapa, ändra eller ta bort ett virtuellt nätverk.