在本快速入門中,瞭解如何使用 Azure 入口網站、Azure CLI、PowerShell、Bicep、ARM 範本和 Terraform 來建立 NAT 閘道。 NAT 閘道服務可為 Azure 中的虛擬機器提供可調整的輸出連線。
建立 NAT 閘道
部署 NAT 閘道資源和其他資源之前,需要有資源群組才能包含已部署的資源。 在下列步驟中,您將建立資源群組、NAT 閘道資源和公用 IP 位址。 您可以使用一或多個公用 IP 位址資源、公用 IP 前置詞或兩者。
如需公用 IP 前置詞和 NAT 閘道的相關資訊,請參閱管理 NAT 閘道。
在入口網站頂端的搜尋方塊中,輸入「NAT 閘道」。 在搜尋結果中,選取 [NAT 閘道]。
選取 [+ 建立]。
在 [建立網路位址轉譯 (NAT) 閘道] 中,輸入或選取 [基本資訊] 索引標籤中的此項資訊:
|
設定 |
價值 |
|
項目詳細數據 |
|
| 訂閱 |
選取您的 Azure 訂用帳戶。 |
| 資源群組 |
請選擇 新建。
輸入 test-rg。
選取 [確定]。 |
|
實例詳細數據 |
|
| NAT 閘道名稱 |
輸入 nat-gateway |
| 區域 |
選取 [美國東部 2]。 |
| 可用性區域 |
選取 [無區域]。 |
| TCP 閒置逾時 (分鐘) |
保留預設值 [4]。 |
如需可用性區域和 NAT 閘道的相關資訊,請參閱 NAT 閘道和可用性區域。
選取 [輸出 IP] 索引標籤,或選取頁面底部的 [下一步:輸出 IP] 按鈕。
在 [輸出 IP] 索引標籤中,輸入或選取以下資訊:
|
設定 |
價值 |
| 公用IP位址 |
選取 [建立新的公用 IP 位址]。
在 [名稱] 中輸入 public-ip-nat。
選取 [確定]。 |
選取 [檢閱 + 建立] 索引頁面,或是選取頁面底部的 [檢閱 + 建立] 藍色按鈕。
選取 ,創建。
建立虛擬網路和堡壘主機
下列程序會建立具有資源子網路、Azure Bastion 子網路和 Azure Bastion 主機的虛擬網路。
在入口網站中,搜尋並選取 [虛擬網路]。
在 [虛擬網路] 頁面上,選取 [+ 建立]。
在 [建立虛擬網路] 的 [基本] 索引標籤上,輸入或選取下列資訊:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
| 訂閱 |
選取您的訂用帳戶。 |
| 資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
| 名稱 |
輸入 vnet-1。 |
| 區域 |
選取 [(美國) 美國東部 2]。 |
選取 [下一步],繼續前往 [安全性] 索引標籤。
在 [安全性] 索引標籤的 [Azure Bastion] 區段中,選取 [啟用 Azure Bastion]。
Azure Bastion 會使用您的瀏覽器,透過安全殼層 (SSH) 或遠端桌面通訊協定 (RDP) 連線至虛擬網路中的 VM (使用其私人 IP 位址)。 VM 不需要公用 IP 位址、用戶端軟體或特殊設定。 如需 Azure Bastion 的詳細資訊,請參閱 Azure Bastion
備註
無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格和 SKU。 如果您要將 Bastion 部署為教學課程或測試的一部份,建議您在使用完畢後刪除此資源。
在 [Azure Bastion] 中,輸入或選取下列資訊:
| 設定 |
價值觀 |
| Azure Bastion 主機名稱 |
輸入 bastion。 |
| Azure Bastion 公用 IP 位址 |
選取 [建立公用 IP 位址]。
在 [名稱] 中輸入 public-ip-bastion。
選取 [確定]。 |
選取 [下一步],繼續前往 [IP 位址] 索引標籤。
在 [子網路] 的 [位址空間] 方塊中,選取 [預設] 子網路。
在 [編輯子網路] 中,輸入或選取下列資訊:
| 設定 |
價值觀 |
| 子網路用途 |
保留預設值 [Default]。 |
| 名稱 |
輸入 subnet-1。 |
|
IPv4 |
|
| IPv4 位址範圍 |
保留 10.0.0.0/16 的預設值。 |
| 起始位址 |
保留預設值 [10.0.0.0]。 |
| 大小 |
保留預設值 /24(256 個位址)。 |
|
安全性 |
|
| NAT 閘道 |
選取 [nat-gateway]。 |
選取 [儲存]。
選取畫面底部的 [檢閱 + 建立],然後在驗證通過時,選取 [建立]。
建立測試虛擬機器
下列程序會在虛擬網路中建立名為 vm-1 的測試虛擬機器 (VM)。
在入口網站中,搜尋並選取 [虛擬機器]。
在 [虛擬機器] 中,選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [建立虛擬機器] 的 [基本] 索引標籤上,輸入或選取下列資訊:
| 設定 |
價值觀 |
|
項目詳細數據 |
|
| 訂閱 |
選取您的訂用帳戶。 |
| 資源群組 |
選取 test-rg。 |
|
實例詳細數據 |
|
| 虛擬機器名稱 |
輸入 vm-1。 |
| 區域 |
選取 [美國東部 2]。 |
| 可用性選項 |
選擇選項「不需要基礎結構備援」。 |
| 安全性類型 |
保留預設值 [標準]。 |
| 影像 |
選取 [Ubuntu Server 22.04 LTS - x64 Gen2]。 |
| VM 架構 |
保留預設值 [x64]。 |
| 大小 |
選擇尺寸。 |
|
系統管理員帳戶 |
|
| 驗證類型 |
選取 [密碼]。 |
| 用戶名稱 |
輸入azureuser。 |
| 密碼 |
輸入密碼。 |
| 確認密碼 |
重新輸入密碼。 |
|
輸入埠規則 |
|
| 公用輸入連接埠 |
選取 [無]。 |
選取頁面頂端的 [網路] 索引標籤。
在 [網路] 索引標籤中,輸入或選取以下資訊:
| 設定 |
價值觀 |
|
網路介面 |
|
| 虛擬網路 |
選取 vnet-1。 |
| 子網路 |
選取 subnet-1 (10.0.0.0/24)。 |
| 公用 IP |
選取 [無]。 |
| NIC 網路安全性群組 |
選取進階。 |
| 設定網路安全性群組 |
請選擇 新建。
輸入 nsg-1 作為名稱。
將其餘項目保留為預設值,然後選取 [確定]。 |
將其餘設定保留為預設值,然後選取 [檢閱 + 建立]。
檢閱設定並選取 [建立]。
備註
虛擬網路中的虛擬機器 (具有 Bastion 主機) 不需要公用 IP 位址。 Bastion 會提供公用 IP,而 VM 會使用私人 IP 在網路內通訊。 您可以從裝載了 Bastion 的虛擬網路中,移除任何 VM 的公用 IP。 如需詳細資訊,請參閱中斷公用 IP 位址與 Azure VM 的關聯。
備註
無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。
發生下列其中一個事件時,會停用預設輸出存取 IP:
- 公用 IP 位址會指派給 VM。
- 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
-
Azure NAT 閘道資源會指派給 VM 的子網路。
您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。
如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取與針對輸出連線,使用來源網路位址轉譯 (SNAT)。
建立資源群組
使用 New-AzResourceGroup 來建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
下列範例會在 eastus2 位置建立名為 test-rg 的資源群組:
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
建立 NAT 閘道
在本節中,請建立 NAT 閘道和支援的資源。
## 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 VM ##
$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 ##
$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 ##
$vm = @{
ResourceGroupName = 'test-rg'
Location = 'eastus2'
VM = $vmConfig
}
New-AzVM @vm
請等候虛擬機器建立完成,再繼續進行下一小節。
建立資源群組
使用 az group create 來建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。
az group create \
--name test-rg \
--location eastus2
建立 NAT 閘道
在本節中,請建立 NAT 閘道和支援的資源。
建立公用 IP 位址
若要存取因特網,您需要 NAT 閘道的一或多個公用 IP 位址。 使用 az network public-ip create 來建立公用 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
建立 NAT 閘道資源
使用 az network nat gateway create 建立 NAT 閘道資源。 NAT 閘道會使用在上一個步驟中建立的公用IP位址。 將閒置逾時時間設定為 10 分鐘。
az network nat gateway create \
--resource-group test-rg \
--name nat-gateway \
--public-ip-addresses public-ip-nat \
--idle-timeout 10
建立虛擬網路和子網路
使用 az network vnet create 建立名為 vnet-1 的虛擬網路,其子網名為 subnet-1。 虛擬網路的 IP 位址空間為 10.0.0.0/16。 虛擬網路內的子網路為 10.0.0.0/24。
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
建立 Azure Bastion 子網
使用 az network vnet subnet create 建立名為 AzureBastionSubnet 的 Azure Bastion 子網:
az network vnet subnet create \
--name AzureBastionSubnet \
--resource-group test-rg \
--vnet-name vnet-1 \
--address-prefix 10.0.1.0/26
將 NAT 閘道與子網建立關聯
使用 az network vnet subnet update 將 NAT 閘道與子網產生關聯:
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--nat-gateway nat-gateway
建立 Bastion 主機的公用 IP 位址
使用 az network public-ip create 建立 Bastion 主機的公用 IP 位址:
az network public-ip create \
--resource-group test-rg \
--name public-ip \
--sku Standard \
--location eastus2 \
--zone 1 2 3
建立 Bastion 主機
使用 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
Bastion 主機可能需要幾分鐘的時間才能部署。 等候 Bastion 主機部署,再繼續進行下一節。
建立虛擬機
建立名為 vm-1 的虛擬機來測試 NAT 閘道,並確認輸出連線的公用 IP 位址。 使用 az vm create:
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Ubuntu2204 \
--admin-username azureuser \
--authentication-type password \
--public-ip-address "" \
--subnet subnet-1 \
--vnet-name vnet-1
請等候虛擬機器建立完成,再繼續進行下一小節。