在本快速入門中,學習如何利用 Azure 入口網站、Azure PowerShell 或 Azure CLI,為 Azure NAT 閘道 標準 SKU 建立網路位址轉換(NAT)閘道。 Azure NAT 閘道 服務為 Azure 中的虛擬機提供可擴展的出站連線。
下圖展示了你在此快速入門中將建立的資源。
先決條件
具有有效訂閱的 Azure 帳戶。
免費建立帳戶。
Azure Cloud Shell 或 Azure PowerShell。
本快速入門中的步驟會在 Azure Cloud Shell 中以互動方式執行 Azure PowerShell Cmdlet。 要在 Cloud Shell 執行指令,請在程式碼區塊右上角選擇 「Open Cloud Shell 」。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行它。 您也可以從 Azure 入口網站內執行 Cloud Shell。
您也可以在本機安裝 Azure PowerShell 來執行 Cmdlet。 本文中的步驟需要 Azure PowerShell 模組 5.4.1 版或更新版本。 若要尋找您安裝的版本,請執行 Get-Module -ListAvailable Az。 如果你需要升級,請參考 Update-AzModule。
- 如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。
建立資源群組
在入口網站頂端的搜尋框中輸入 資源群組。 在搜尋結果中,選取 [資源群組]。
選取 [+ 建立]。
在 建立資源群組中,輸入或選擇以下數值:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
|
訂閱 |
選取您的 Azure 訂用帳戶。 |
|
資源群組 |
輸入 test-rg。 |
|
資源詳細資料 |
|
|
區域 |
選取 [(美國) 美國東部 2]。 |
選擇 檢閱 + 創建。
選取 ,創建。
使用 New-AzResourceGroup 建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
以下範例建立一個名為該test-rg地點的eastus2資源群組:
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
使用 az group create 建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
az group create \
--name test-rg \
--location eastus2
建立虛擬網路
下列程式會建立具有資源子網的虛擬網路:
在入口網站中,搜尋並選取 [虛擬網路]。
在 [虛擬網路] 頁面上,選取 [+ 建立]。
在 [建立虛擬網路] 的 [基本] 索引標籤上,輸入或選取下列資訊:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
|
Name |
輸入 vnet-1。 |
|
區域 |
選取 [(美國) 美國東部 2]。 |
選取 [下一步],繼續前往 [安全性] 索引標籤。
選取 [下一步],繼續前往 [IP 位址] 索引標籤。
在 [子網路] 的 [位址空間] 方塊中,選取 [預設] 子網路。
在 [編輯子網路] 中,輸入或選取下列資訊:
| 設定 |
價值觀 |
|
子網路用途 |
離開 預設狀態。 |
|
Name |
輸入 subnet-1。 |
|
IPv4 |
|
|
IPv4 位址範圍 |
保留 10.0.0.0/16 的預設值。 |
|
起始位址 |
保留預設值 [10.0.0.0]。 |
|
Size |
保留 /24 (256 個位址) 的預設值。 |
選取 [儲存]。
在窗格底部選擇 檢視 + 建立 。 當虛擬網路通過驗證時,選擇 建立。
使用 New-AzVirtualNetworkSubnetConfig 建立虛擬機子網路與Azure Bastion主機子網路的子網路設定。
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
$bastsubnet = @{
Name = 'AzureBastionSubnet'
AddressPrefix = '10.0.1.0/26'
}
$bastsubnetConfig = New-AzVirtualNetworkSubnetConfig @bastsubnet
透過使用 New-AzVirtualNetwork建立虛擬網路。
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig, $bastsubnetConfig
}
$vnet = New-AzVirtualNetwork @net
建立一個名為vnet-1的虛擬網路,並使用subnet-1命名子網為az network vnet create。
az network vnet create \
--resource-group test-rg \
--name vnet-1 \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
使用 AzureBastionSubnet 建立一個名為 az network vnet subnet create 的Azure Bastion子網路。
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
部署 Azure Bastion
Azure Bastion 利用您的瀏覽器,透過 Secure Shell(SSH)或 遠端桌面 協定(RDP)連接虛擬網路中的虛擬機(VM),並利用它們的私有 IP 位址。 VM 不需要公用 IP 位址、用戶端軟體或特殊設定。 如需詳細資訊,請參閱什麼是 Azure Bastion?。
備註
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果您要將 Bastion 部署為教學課程或測試的一部份,建議您在使用完畢後刪除此資源。
在入口網站頂端的搜尋方塊中,輸入 Bastion。 在搜尋結果中選擇 堡壘 。
選取 [+ 建立]。
在「建立堡壘基礎」分頁中,輸入或選擇以下資訊:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
|
訂閱 |
選取您的訂用帳戶。 |
|
資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
|
Name |
輸入 bastion。 |
|
區域 |
選取 [(美國) 美國東部 2]。 |
|
等級 |
選擇 開發者。 |
|
設定虛擬網路 |
|
|
虛擬網路 |
選取 vnet-1。 |
選擇 檢閱 + 創建。
選取 ,創建。
使用 New-AzPublicIpAddress 為Azure Bastion主機建立公共 IP 位址。
$ip = @{
Name = 'public-ip'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1, 2, 3
}
$publicip = New-AzPublicIpAddress @ip
使用 New-AzBastion 建立一個Azure Bastion主機。
$bastion = @{
Name = 'bastion'
ResourceGroupName = 'test-rg'
PublicIpAddressRgName = 'test-rg'
PublicIpAddressName = 'public-ip'
VirtualNetworkRgName = 'test-rg'
VirtualNetworkName = 'vnet-1'
Sku = 'Basic'
}
New-AzBastion @bastion -AsJob
Azure Bastion 主機可能需要幾分鐘才能部署完成。
使用 az network public-ip create 為Azure Bastion主機建立公共 IP 位址。
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
使用 az network bastion create 建立 Azure Bastion 主機。
az network bastion create \
--name bastion \
--public-ip-address public-ip \
--resource-group test-rg \
--vnet-name vnet-1 \
--location eastus2 \
--sku Basic \
--no-wait
Azure Bastion 主機可能需要幾分鐘才能部署完成。
建立虛擬機
以下程序建立具有 SSH 金鑰驗證的 Linux 虛擬機:
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選擇 + Create,然後選擇 Azure 虛擬機器。
在「建立虛擬機器」的基礎標籤中,輸入或選擇以下數值:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
|
訂閱 |
選取您的 Azure 訂用帳戶。 |
|
資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
|
虛擬機器名稱 |
輸入 vm-1。 |
|
區域 |
選取 [(美國) 美國東部 2]。 |
|
可用性選項 |
選擇選項「不需要基礎結構備援」。 |
|
安全類型 |
選取 [標準]。 |
|
圖像 |
選取 [Ubuntu Server 24.04 LTS - x64 Gen2]。 |
|
Size |
選擇大小或保留預設設定。 |
|
系統管理員帳戶 |
|
|
驗證類型 |
選取 [SSH 公開金鑰]。 |
|
使用者名稱 |
輸入azureuser。 |
|
SSH 公鑰來源 |
選取 [產生新的金鑰組]。 |
|
金鑰對名稱 |
輸入vm-1_key。 |
選取 [網路] 索引標籤,或選取 [下一步:磁碟]>[下一步:網路]。
輸入下列值:
| 設定 |
價值觀 |
|
網路介面 |
|
|
虛擬網路 |
選取 vnet-1。 |
|
子網路 |
選取 [subnet-1]。 |
|
公用 IP |
選取 [無]。 |
選擇 檢閱 + 創建。
檢閱設定,然後選取 [建立]。
當 [產生新的金鑰組] 視窗開啟時,請選取 [下載私密金鑰並建立資源]。 金鑰檔案下載為 vm-1_key.pem。 務必知道 .pem 檔案下載在哪裡。 你需要有金鑰檔案的路徑才能連接到虛擬機。
在本節中,您會建立虛擬機來測試 NAT 閘道,並驗證輸出連線的公用 IP 位址。
透過使用 New-AzVM建立虛擬機。 在虛擬機建立時會產生一對 SSH 金鑰。
$securePassword = ConvertTo-SecureString ' ' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ('azureuser', $securePassword)
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Name = 'vm-1'
Image = 'Ubuntu2204'
Size = 'Standard_DS1_v2'
VirtualNetworkName = 'vnet-1'
SubnetName = 'subnet-1'
PublicIpAddressName = ''
GenerateSshKey = $true
SshKeyName = 'vm-1_key'
Credential = $cred
}
New-AzVM @vm
等虛擬機建立完成後再進入下一部分。
透過使用 vm-1,建立一台名為 az vm create SSH 金鑰認證的 Linux 虛擬機。
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Ubuntu2404 \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-address "" \
--subnet subnet-1 \
--vnet-name vnet-1
等虛擬機建立完成後再進入下一部分。
建立 NAT 閘道
在這個區段,你需要建立 NAT 閘道資源,並將其與你所建立的虛擬網路的子網關聯。
在入口網站頂端的搜尋方塊中,輸入「NAT 閘道」。 在搜尋結果中,選取 [NAT 閘道]。
選取 [+ 建立]。
在 建立網路位址轉換(NAT)閘道器時,請於 基礎 標籤中輸入或選擇此資訊:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
|
訂閱 |
選取您的 Azure 訂用帳戶。 |
|
資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
|
NAT 閘道名稱 |
輸入 nat-gateway。 |
|
區域 |
選取 [(美國) 美國東部 2]。 |
|
SKU |
選取 [標準]。 |
|
可用性區域 |
選取 [無區域]。 |
|
TCP 空閒超時(分鐘) |
保留預設值 [4]。 |
關於可用性區域與 NAT 閘道的資訊,請參閱 Azure NAT 閘道中的可靠性。
選取傳出 IP 索引標籤,或選取下一步:傳出 IP。
輸入或選取下列資訊:
| 設定 |
價值觀 |
|
公用IP位址 |
選取 [建立新的公用 IP 位址]。
在 [名稱] 中輸入 public-ip-nat。
選取 [確定]。 |
選取 網路 標籤,或選取 下一步:網路。
在 虛擬網路中,選擇 vnet-1。
在 子網路名稱中,選擇 子網路 1 的勾選框。
選擇「 Review + 建立 」標籤,或在窗格底部選擇 「Review + 建立 」按鈕。
選取 ,創建。
在此區段,你建立 NAT 閘道資源,並將其與虛擬網路的子網關聯。
使用New-AzPublicIpAddress為 NAT 閘道建立一個公共 IP 位址。
$ip = @{
Name = 'public-ip-nat'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
Zone = 1, 2, 3
}
$publicIP = New-AzPublicIpAddress @ip
使用New-AzNatGateway建立 NAT 閘道資源。
$nat = @{
ResourceGroupName = 'test-rg'
Name = 'nat-gateway'
IdleTimeoutInMinutes = '10'
Sku = 'Standard'
Location = 'eastus2'
PublicIpAddress = $publicIP
}
$natGateway = New-AzNatGateway @nat
將 NAT 閘道器與subnet-1透過Set-AzVirtualNetworkSubnetConfig進行關聯。 使用 Set-AzVirtualNetwork 來應用配置。
$vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg'
$subnet = @{
VirtualNetwork = $vnet
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
NatGateway = $natGateway
}
Set-AzVirtualNetworkSubnetConfig @subnet
$vnet | Set-AzVirtualNetwork
在此區段,你建立 NAT 閘道資源,並將其與虛擬網路的子網關聯。
使用az network public-ip create為 NAT 閘道建立一個公共 IP 位址。
az network public-ip create \
--resource-group test-rg \
--name public-ip-nat \
--sku Standard \
--allocation-method Static \
--location eastus2 \
--zone 1 2 3
使用az network nat gateway create建立 NAT 閘道資源。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 10
將 NAT 閘道器與subnet-1透過az network vnet subnet update進行關聯。
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway
測試 NAT 閘道
要測試 NAT 閘道器,首先要找出它的公開 IP。 接著你連接到測試虛擬機,並透過該公開 IP 驗證出站連線。
在入口網站頂端的搜尋方塊中,輸入「公用 IP」。 在搜尋結果中,選取 [公用 IP 位址]。
選取 [public-ip-nat]。
記下公用 IP 位址。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 vm-1。
在 概覽 頁面,選擇 連接,然後選擇 堡壘 標籤。
選取 [使用 Bastion]。
在 認證類型中,從 本地檔案選擇 SSH 私鑰。
在 使用者名稱中輸入 azureuser。
選擇 瀏覽 ,然後前往虛擬機建立時下載的 vm-1_key.pem 檔案。
選擇 連線。
在 Bash 提示詞中,輸入以下指令:
curl ifconfig.me
確認指令回傳的 IP 位址是否與 NAT 閘道的公開 IP 位址相符。
azureuser@vm-1:~$ curl ifconfig.me
203.0.113.0.25
清理資源
當完成了使用您所建立的資源時,您可以刪除資源群組及其所有資源。
在 Azure 入口網站中,搜尋並選取 [資源群組]。
在 [資源群組] 頁面上,選取 [test-rg] 資源群組。
在 [test-rg] 頁面上,選取 [刪除資源群組]。
在 [輸入資源群組名稱以確認刪除] 中輸入 test-rg,然後選取 [刪除]。
如果您不再需要此應用程式,請使用以下指令刪除虛擬網路、虛擬機器及 NAT 閘道:
Remove-AzResourceGroup -Name 'test-rg' -Force
如果您不再需要此應用程式,請使用以下指令刪除虛擬網路、虛擬機器及 NAT 閘道:
az group delete \
--name test-rg \
--yes
相關內容