Share via


快速入門:使用 Azure PowerShell 建立 NAT 閘道

在本快速入門中,瞭解如何使用 PowerShell 建立 NAT 閘道。 NAT 閘道服務提供 Azure 中虛擬機器的輸出連線能力。

Diagram of resources created in nat gateway quickstart.

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • Azure Cloud Shell 或 Azure PowerShell

    本快速入門中的步驟會在 Azure Cloud Shell 中以互動方式執行 Azure PowerShell Cmdlet。 若要在 Cloud Shell 中執行命令,請選取程式碼區塊右上角的 [開啟 Cloudshell]。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行。 您也可以從 Azure 入口網站內執行 Cloud Shell。

    您也可以在本機安裝 Azure PowerShell 來執行 Cmdlet。 本文中的步驟需要 Azure PowerShell 模組 5.4.1 版或更新版本。 執行 Get-Module -ListAvailable Az 來了解您安裝的版本。 如果您需要升級,請參閱更新 Azure PowerShell 模組

建立資源群組

使用 New-AzResourceGroup 來建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。

下列範例會在 eastus2 位置建立名為 test-rg 的資源群組:

$rsg = @{
    Name = 'test-rg'
    Location = 'eastus2'
}
New-AzResourceGroup @rsg

建立 NAT 閘道

在本節中,我們會建立 NAT 閘道和支援的資源。

  • 若要存取網際網路,您需要有一個或多個適用於 NAT 閘道的公用 IP 位址。 使用 New-AzPublicIpAddress,在 test-rg 中建立名為 public-ip-nat 的公用 IP 位址資源。

  • 使用 New-AzNatGateway 建立全域 Azure NAT 閘道。 此命令的結果會建立名為 nat-gateway 的閘道資源,並且使用公用 IP 位址 public-ip-nat。 將閒置逾時時間設定為 10 分鐘。

  • 使用 New-AzVirtualNetwork,在 test-rg 中建立名為 vnet-1 的虛擬網路,並使用 New-AzVirtualNetworkSubnetConfig 建立名為 subnet-1 的子網路。 虛擬網路的 IP 位址空間為 10.0.0.0/16。 虛擬網路內的子網路為 10.0.0.0/24

  • 建立名為 bastion 的 Azure Bastion 主機以存取虛擬機器。 使用 New-AzBastion 建立堡壘主機。 使用 New-AzPublicIpAddress 建立堡壘主機的公用 IP 位址。

## Create public IP address for NAT gateway ##
$ip = @{
    Name = 'public-ip-nat'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicIP = New-AzPublicIpAddress @ip

## Create NAT gateway resource ##
$nat = @{
    ResourceGroupName = 'test-rg'
    Name = 'nat-gateway'
    IdleTimeoutInMinutes = '10'
    Sku = 'Standard'
    Location = 'eastus2'
    PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat

## Create subnet config and associate NAT gateway to subnet##
$subnet = @{
    Name = 'subnet-1'
    AddressPrefix = '10.0.0.0/24'
    NatGateway = $natGateway
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet 

## Create Azure Bastion subnet. ##
$bastsubnet = @{
    Name = 'AzureBastionSubnet' 
    AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet

## Create the virtual network ##
$net = @{
    Name = 'vnet-1'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    AddressPrefix = '10.0.0.0/16'
    Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net

## Create public IP address for bastion host. ##
$ip = @{
    Name = 'public-ip'
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Sku = 'Standard'
    AllocationMethod = 'Static'
    Zone = 1,2,3
}
$publicip = New-AzPublicIpAddress @ip

## Create bastion host ##
$bastion = @{
    Name = 'bastion'
    ResourceGroupName = 'test-rg'
    PublicIpAddressRgName = 'test-rg'
    PublicIpAddressName = 'public-ip'
    VirtualNetworkRgName = 'test-rg'
    VirtualNetworkName = 'vnet-1'
    Sku = 'Basic'
}
New-AzBastion @bastion

堡壘主機可能需要幾分鐘的時間才能部署。 等候堡壘主機部署,再繼續進行下一區段。

虛擬機器

在本節中,您會建立虛擬機器來測試 NAT 閘道,並驗證輸出連線的公用 IP 位址。

# Set the administrator and password for the VMs. ##
$cred = Get-Credential

## Place the virtual network into a variable. ##
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'

## Create network interface for virtual machine. ##
$nic = @{
    Name = "nic-1"
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic

## Create a virtual machine configuration for VMs ##
$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 virtual machine for VMs ##
$vm = @{
    ResourceGroupName = 'test-rg'
    Location = 'eastus2'
    VM = $vmConfig
}
New-AzVM @vm

請等候虛擬機器建立完成,再繼續進行下一小節。

測試 NAT 閘道

在本節中,您會測試 NAT 閘道。 您先探索 NAT 閘道的公用 IP。 接著,您會連線至測試虛擬機器,並透過 NAT 閘道驗證輸出連線。

  1. 登入 Azure 入口網站

  2. 在入口網站頂端的搜尋方塊中,輸入公用 IP。 在搜尋結果中,選取 [公用 IP 位址]

  3. 選取 [public-ip-nat]

  4. 記下公用 IP 位址:

    Discover public IP address of NAT gateway

  5. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  6. 選取 [vm-1]

  7. 在 [概觀] 頁面上,選取 [連線],然後選取 [Bastion] 索引標籤。

  8. 選取 [使用 Bastion]

  9. 輸入在 VM 建立期間輸入的使用者名稱和密碼。 選取 Connect

  10. 在 bash 命令提示字元中輸入下列命令:

    curl ifconfig.me
    
  11. 確認命令傳回的 IP 位址符合 NAT 閘道的公用 IP 位址。

    azureuser@vm-1:~$ curl ifconfig.me
    20.7.200.36
    

清除資源

如果您不打算繼續使用此應用程式,請使用下列步驟刪除虛擬網路、虛擬機器和 NAT 閘道:

Remove-AzResourceGroup -Name 'test-rg' -Force

下一步

如需 Azure NAT 閘道的詳細資訊,請參閱: