在這份快速入門中,學習如何使用 Azure 入口網站、Azure PowerShell 或 Azure CLI,為 Azure NAT 閘道 的 StandardV2 SKU 建立網路位址轉換(NAT)閘道。 Azure NAT 閘道 服務為 Azure 中的虛擬機提供可擴展的出站連線。
先決條件
一個有有效訂閱的 Azure 帳號。
免費建立帳戶。
Azure Cloud Shell 或 Azure PowerShell.
這個快速入門中的步驟會用 Azure Cloud Shell 互動式執行 Azure PowerShell 指令匣。 要在 Cloud Shell 執行指令,請在程式碼區塊右上角選擇 「Open Cloud Shell 」。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行它。 您也可以從 Azure 入口網站內執行 Cloud Shell。
你也可以將 Azure PowerShell 安裝到本地來運行命令。 本文中的步驟需要 Azure PowerShell 模組版本 5.4.1 或更新版本。 若要尋找您安裝的版本,請執行 Get-Module -ListAvailable Az。 如果你需要升級,請參考 Update-AzModule。
建立資源群組
建立資源群組以包含適用於此快速入門的所有資源。
登入 Azure 入口網站。
在入口網站頂端的搜尋方塊中,輸入資源群組。 在搜尋結果中,選取 [資源群組]。
選取 + Create。
在「建立資源群組」的基礎標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
輸入 test-rg。 |
|
區域 |
輸入美國東部。 |
選擇 檢閱 + 創建。
選取 ,創建。
使用 New-AzResourceGroup 建立資源群組。 Azure 資源群組是一個邏輯容器,Azure 資源會部署和管理其中。
以下範例建立一個名為該test-rg地點的eastus資源群組:
$rsg = @{
Name = 'test-rg'
Location = 'eastus'
}
New-AzResourceGroup @rsg
使用 az group create 建立資源群組。 Azure 資源群組是一個邏輯容器,Azure 資源會部署和管理其中。
以下範例建立一個名為該test-rg地點的eastus資源群組:
az group create \
--name test-rg \
--location eastus
建立 NAT 閘道
在本節中,請建立 NAT 閘道和支援的資源。
Azure NAT 閘道 支援多種 IP 位址部署選項及冗餘配置,以滿足您的連線與可用性需求。
區域冗餘 IPv4 位址
登入 Azure預覽入口。
在入口網站頂端的搜尋方塊中,輸入公用 IP 位址。 在搜尋結果中,選取 [公用 IP 位址]。
選取 ,創建。
在 建立公共 IP 位址時,輸入以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取您的資源群組。 此範例使用 test-rg。 |
|
實例詳細數據 |
|
|
區域 |
選取區域。 此範例使用美國東部。 |
|
組態詳細資料 |
|
|
Name |
輸入 public-ip-nat。 |
|
IP版本 |
選取 [IPv4]。 |
|
SKU |
選取 [標準 V2 (搭配使用標準 V2 NAT 閘道)]。 |
|
等級 |
選取 [區域]。 |
選取 審核 + 建立,然後選取 建立。
在Azure入口網站頂端的搜尋框中輸入 NAT gateway。 在搜尋結果中,選取 [NAT 閘道]。
選取 ,創建。
在建立網路位址轉換(NAT)閘道器的基礎標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 [test-rg] 或您的資源群組。 |
|
實例詳細數據 |
|
|
NAT 閘道名稱 |
輸入 nat-gateway。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
|
SKU |
選取 [標準 V2]。 |
|
TCP 空閒超時(分鐘) |
保留預設值 [4]。 |
選取 下一步。
在 「出站 IP 」標籤中,選擇 + 新增公共 IP 位址或前綴。
在 [新增公用 IP 位址或首碼] 中,選取 [公用 IP 位址]。 選擇你之前建立的公網 IP 位址, public-ip-nat。
選取 [儲存]。
選取 審核 + 建立,然後選取 建立。
使用New-AzPublicIpAddress創建一個區域冗餘的 IPv4 公共 IP 位址給 NAT 閘道。
## Create a public IP address for the NAT gateway ##
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
Location = 'eastus'
Sku = 'StandardV2'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
$publicIPIPv4 = New-AzPublicIpAddress @ip
使用New-AzNatGateway來建立 NAT 閘道資源。
## Create the NAT gateway resource ##
$nat = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '4'
Sku = 'StandardV2'
Location = 'eastus'
PublicIpAddress = $publicIPIPv4
Zone = 1,2,3
}
$natGateway = New-AzNatGateway @nat
使用az network public-ip create創建一個區域冗餘的 IPv4 公共 IP 位址給 NAT 閘道。
az network public-ip create \
--resource-group test-rg \
--name public-ip-nat \
--location eastus \
--sku StandardV2 \
--allocation-method Static \
--version IPv4 \
--zone 1 2 3
使用az network nat gateway create來建立 NAT 閘道資源。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--location eastus \
--public-ip-addresses public-ip-nat \
--idle-timeout 4 \
--sku StandardV2 \
--zone 1 2 3
區域冗餘 IPv4 前綴
登入 Azure預覽入口。
在入口網站頂端的搜尋框中輸入 Public IP 前綴。 選取搜尋結果中的 [公用 IP 前置詞]。
選取 ,創建。
在「建立公共 IP 前綴」的基礎標籤中,輸入以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取您的資源群組。 此範例使用 test-rg。 |
|
實例詳細數據 |
|
|
Name |
輸入 public-ip-prefix-nat。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
|
Sku |
選取 [標準 V2]。 |
|
IP版本 |
選取 [IPv4]。 |
|
前綴所有權 |
選擇 Microsoft 擁有的。 |
|
前綴大小 |
選取前置詞大小。 此範例使用 /28 (16 個位址)。 |
選取 審核 + 建立,然後選取 建立。
在Azure入口網站頂端的搜尋框中輸入 NAT gateway。 在搜尋結果中,選取 [NAT 閘道]。
選取 ,創建。
在建立網路位址轉換(NAT)閘道器的基礎標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 [test-rg] 或您的資源群組。 |
|
實例詳細數據 |
|
|
NAT 閘道名稱 |
輸入 nat-gateway。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
|
SKU |
選取 [標準 V2]。 |
|
TCP 空閒超時(分鐘) |
保留預設值 [4]。 |
選取 下一步。
在 「出站 IP 」標籤中,選擇 + 新增公共 IP 位址或前綴。
在 [新增公用 IP 位址或首碼] 中,選取 [公用 IP 首碼]。 選擇你之前建立的公用 IP 前綴, public-ip-prefix-nat。
選取 審核 + 建立,然後選取 建立。
使用New-AzPublicIpPrefix為 NAT 閘道建立區域冗餘的 IPv4 公用 IP 首碼。
## Create a public IP prefix for the NAT gateway ##
$ip = @{
Name = 'public-ip-prefix-nat'
ResourceGroupName = 'test-rg'
Location = 'eastus'
Sku = 'StandardV2'
PrefixLength = '31'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
$publicIPIPv4prefix = New-AzPublicIpPrefix @ip
使用New-AzNatGateway來建立 NAT 閘道資源。
## Create the NAT gateway resource ##
$nat = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '4'
Sku = 'StandardV2'
Location = 'eastus'
PublicIpPrefix = $publicIPIPv4prefix
Zone = 1,2,3
}
$natGateway = New-AzNatGateway @nat
使用az network public-ip prefix create為 NAT 閘道建立區域冗餘的 IPv4 公用 IP 首碼。
az network public-ip prefix create \
--resource-group test-rg \
--name public-ip-prefix-nat \
--location eastus \
--length 31 \
--sku StandardV2 \
--version IPv4 \
--zone 1 2 3
使用az network nat gateway create來建立 NAT 閘道資源。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--location eastus \
--public-ip-prefixes public-ip-prefix-nat \
--idle-timeout 4 \
--sku StandardV2 \
--zone 1 2 3
建立虛擬網路與子網路設定
建立你所需的虛擬網路和子網路,方便快速啟動。
在Azure入口網站頂端的搜尋框中輸入 Virtual network。 選取搜尋結果中的 [虛擬網路]。
選取 ,創建。
在「建立虛擬網路」的基礎標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 [test-rg] 或您的資源群組。 |
|
實例詳細數據 |
|
|
Name |
輸入 vnet-1。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
選擇 IP 位址標籤,或選擇「下一步>」。
在 子網路中,選擇 預設 子網路。
在 編輯子網中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
子網路用途 |
保留預設值。 |
|
Name |
輸入 subnet-1。 |
|
私人子網路 |
|
|
啟用私人子網(無預設的出站存取) |
選取核取方塊。 |
|
安全性 |
|
|
NAT 閘道 |
選取 [nat-gateway]。 |
選取 [儲存]。
選取 [+ 新增子網路]。
在 新增子網路中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
子網路用途 |
選擇Azure Bastion。 |
將其他設定保留為預設,然後選擇 新增。
選取 審核 + 建立,然後選取 建立。
透過使用 New-AzVirtualNetworkSubnetConfig來建立子網路配置。 創建虛擬網路,透過使用 New-AzVirtualNetwork。
## Create the subnet configuration and associate the NAT gateway with the subnet ##
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
NatGateway = $natGateway
DefaultOutboundAccess = $false
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the 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 = 'eastus'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig,$bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
創建虛擬網路,透過使用 az network vnet create。 透過使用 az network vnet subnet create 和 az network vnet subnet update來建立並配置子網。
## Create the virtual network ##
az network vnet create \
--resource-group test-rg \
--name vnet-1 \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefix 10.0.0.0/24
## Associate the NAT gateway with the subnet and disable default outbound access ##
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway \
--default-outbound false
## Create the Azure Bastion subnet ##
az network vnet subnet create \
--resource-group test-rg \
--vnet-name vnet-1 \
--name AzureBastionSubnet \
--address-prefix 10.0.1.0/26
建立 Azure Bastion 主機
建立一個 Azure Bastion 主機,以安全連接虛擬機。
在Azure入口頂部的搜尋框中輸入 Bastion。 在搜尋結果中選取 [Bastion]。
選取 ,創建。
在「建立堡壘」的基礎標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 [test-rg] 或您的資源群組。 |
|
實例詳細數據 |
|
|
Name |
輸入 bastion。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
|
等級 |
選取 [開發人員]。 |
|
虛擬網路 |
選取 vnet-1。 |
|
子網路 |
選取 [AzureBastionSubnet]。 |
選取 審核 + 建立,然後選取 建立。
使用 New-AzBastion 建立 Azure Bastion 主機。
## Create a public IP address for the Azure Bastion host ##
$ip = @{
Name = 'public-ip-bastion'
ResourceGroupName = 'test-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1,2,3
}
$publicipbastion = New-AzPublicIpAddress @ip
## Create the Azure Bastion host ##
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip-bastion'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion
使用 az network public-ip create 為Azure Bastion主機建立公共 IP 位址。 使用 az network bastion create 建立 Azure Bastion 主機。
## Create a public IP address for the Azure Bastion host ##
az network public-ip create \
--resource-group test-rg \
--name public-ip-bastion \
--location eastus \
--sku Standard \
--allocation-method Static \
--zone 1 2 3
## Create the Azure Bastion host ##
az network bastion create \
--resource-group test-rg \
--name bastion \
--location eastus \
--vnet-name vnet-1 \
--public-ip-address public-ip-bastion \
--sku Basic
Azure Bastion 主機可能需要幾分鐘才能部署完成。 等堡壘主機部署完成之後再進行下一步。
建立虛擬機
在本節中,您會建立虛擬機來測試 NAT 閘道,並驗證輸出連線的公用 IP 位址。
以下指令用於建立用於認證的 Secure Shell(SSH)金鑰。 你之後需要私鑰才能透過 Azure Bastion 登入虛擬機器。
指令需要使用者名稱和密碼。 你不需要用密碼登入虛擬機。
在入口網站頂端的搜尋方塊中,輸入 Virtual machine。 在搜尋結果中,選取 [虛擬機器]。
選取 [建立]>[虛擬機器]。
在 「建立虛擬機器」中,請於 「基礎 」標籤中輸入或選擇以下資訊。
| Setting |
價值觀 |
|
專案細節 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 [test-rg] 或您的資源群組。 |
|
實例詳細數據 |
|
|
虛擬機器名稱 |
輸入 vm-1。 |
|
區域 |
選取您的區域。 此範例使用美國東部。 |
|
可用性選項 |
保留預設值 [不需要基礎結構備援]。 |
|
安全類型 |
選取 [標準]。 |
|
圖像 |
選取 [Ubuntu Server 24.04 LTS - Gen2]。 |
|
Size |
選擇尺寸。 |
|
驗證類型 |
選取 [SSH 公開金鑰]。 |
|
使用者名稱 |
輸入您選擇的使用者名稱。 您需要此使用者名稱稍後才能登入虛擬機器。 |
|
SSH 公鑰來源 |
選取 [產生新的金鑰組]。 |
|
金鑰對名稱 |
輸入 ssh-key。 |
|
公用輸入連接埠 |
選取 [無]。 |
選擇「下一步:磁碟」,然後選擇「下一頁:網路」。
在 「網路」 標籤中,輸入或選擇以下資訊。
| Setting |
價值觀 |
|
網路介面 |
|
|
虛擬網路 |
選取 vnet-1。 |
|
子網路 |
選取 [subnet-1]。 |
|
公用 IP |
選取 [無]。 |
|
NIC 網路安全性群組 |
選取 [基本]。 |
|
公用輸入連接埠 |
保留預設值 None。 |
選取 審核 + 建立,然後選取 建立。
請使用 Get-Credential. 建立虛擬機的使用者名稱和密碼。 使用 New-AzNetworkInterface 為虛擬機器建立網路介面。 使用New-AzVMConfig 建立虛擬機配置。 建立虛擬機器,透過使用 New-AzVM。
## Get credentials for the virtual machine ##
$cred = Get-Credential
## Create the network interface for the virtual machine ##
$nic = @{
Name = "nic-1"
ResourceGroupName = 'test-rg'
Location = 'eastus'
Subnet = $vnet.Subnets[0]
}
$nicVM = New-AzNetworkInterface @nic
## Create the virtual machine configuration ##
$vmsz = @{
VMName = 'vm-1'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'vm-1'
Credential = $cred
DisablePasswordAuthentication = $true
}
$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 ##
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus'
VM = $vmConfig
SshKeyName = 'ssh-key'
}
New-AzVM @vm -GenerateSshKey
使用 az network nic create 為虛擬機器建立網路介面。 建立虛擬機器,透過使用 az vm create。
## Create a network interface for the virtual machine ##
az network nic create \
--resource-group test-rg \
--name nic-1 \
--vnet-name vnet-1 \
--subnet subnet-1
## Create the virtual machine ##
az vm create \
--resource-group test-rg \
--name vm-1 \
--location eastus \
--nics nic-1 \
--image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
--size Standard_DS1_v2 \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-address ""
等虛擬機建立完成後再進入下一部分。
這很重要
確保您將 SSH 私密金鑰下載至虛擬機器。 你需要私鑰才能透過 Azure Bastion 登入虛擬機。
測試 NAT 閘道
要測試 NAT 閘道,首先要發現 NAT 閘道的公有 IP。 接著你連接到測試虛擬機,並透過 NAT 閘道的公開 IP 驗證出站連線。
在入口網站頂端的搜尋方塊中,輸入 NAT 閘道。 在搜尋結果中,選取 [NAT 閘道]。
選取 [nat-gateway]。
展開 設定,然後選擇 外撥 IP。
請記下外撥的 IP 位址。 NAT 閘道所設定的個別公共 IP 與公共 IP 前綴會顯示在此處。
在入口網站頂端的搜尋方塊中,輸入 Virtual machine。 在搜尋結果中,選取 [虛擬機器]。
選取 vm-1。
在 概覽 頁面,選擇 連接,然後選擇 透過堡壘連接。
在 認證 清單中,選擇 SSH 私鑰,從本地檔案中選擇。
在 使用者名稱中,輸入你在虛擬機建立時輸入的使用者名稱。
在 本地檔案中,選擇你之前下載的 SSH 私鑰檔案。
選擇 連線。
在 Bash 提示詞中,輸入以下指令:
curl ifconfig.me
確認指令回傳的 IP 位址是否與你之前提到的 NAT 閘道的公開 IP 位址相符。
azureuser@vm-1:~$ curl ifconfig.me
203.0.113.0.25
清理資源
當完成了使用您所建立的資源時,您可以刪除資源群組及其所有資源。
在Azure入口網站中,搜尋並選擇 Resource Groups。
在 [資源群組] 頁面上,選取 [test-rg] 資源群組。
在 [test-rg] 頁面上,選取 [刪除資源群組]。
在 [輸入資源群組名稱以確認刪除] 中輸入 test-rg,然後選取 [刪除]。
如果您不再需要此應用程式,請使用以下指令刪除虛擬網路、虛擬機器及 NAT 閘道:
Remove-AzResourceGroup -Name 'test-rg' -Force
如果您不再需要此應用程式,請使用以下指令刪除虛擬網路、虛擬機器及 NAT 閘道:
az group delete \
--name test-rg \
--yes \
--no-wait
相關內容