在本文中,您將了解如何將公用 IP 位址與現有虛擬機器 (VM) 建立關聯。 若要進行此作業,您需要使用公用 IP 位址,將其與連結至 VM 的網路介面 IP 設定建立關聯。 針對您想使用的方法選取索引標籤,即可使用 Azure 入口網站、Azure CLI 或 Azure PowerShell。
如果您想改以公用 IP 位址建立新的 VM,可以使用 Azure 入口網站、Azure CLI 或 Azure PowerShell 來完成操作。
公用 IP 位址需要少許費用。 如需詳細資料,請參閱定價。 每個訂用帳戶能使用的公用 IP 位址數有限。 如需詳細資料,請參閱限制。
注意
無論是未獲指派公用 IP 位址的 VM,或位於內部基本 Azure 負載平衡器後端集區的 VM,Azure 都會為其提供預設輸出存取 IP。 預設輸出存取 IP 機制能提供無法自行設定的輸出 IP 位址。
發生下列其中一個事件時,會停用預設輸出存取 IP:
- 公用 IP 位址會指派給 VM。
- 無論有沒有輸出規則,都會將 VM 放在標準負載平衡器的後端集區中。
-
Azure NAT 閘道資源會指派給 VM 的子網路。
您在彈性協調流程模式中使用虛擬機器擴展集建立的 VM 沒有預設輸出存取。
如需 Azure 中輸出連線的詳細資訊,請參閱 Azure 中的預設對外存取與針對輸出連線,使用來源網路位址轉譯 (SNAT)。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 您可以免費建立帳戶。
登入 Azure 入口網站。
在入口網站中,搜尋並選取您要新增公用 IP 位址的 VM。
在 [設定] 下的左窗格中,選取 [網路],接著選取要新增公用 IP 位址的網路介面。
注意
公用 IP 位址會與連結至 VM 的網路介面建立關聯。 在此螢幕擷取畫面中,VM 只有一個網路介面。 如果 VM 有多個網路介面,則皆會顯示在其中,接著您可以選取所要與公用 IP 位址建立關聯的網路介面。
從 [網络介面] 視窗的 [設定] 下,選取 [IP 設定]*,然後從清單中選取 IP 設定。
注意
公用 IP 位址會與網路介面的 IP 設定建立關聯。 在此螢幕擷取畫面中,網路介面只有一個 IP 設定。 如果網路介面有多個 IP 設定,則皆會顯示在清單中,接著您可以選取所要與公用 IP 位址建立關聯的 IP 設定。
在 [編輯 IP 設定] 視窗中,選取 [建立公用 IP 位址關聯],然後從下拉式清單中選取 [公用 IP 位址],以選擇現有的公用 IP 位址。 如果未列出任何公用 IP 位址,您需要建立一個。 若要深入瞭解,請參閱建立公用 IP 位址。
注意
在下拉式清單顯示的公用 IP 位址會與 VM 一樣存在於相同區域。 如果您已在區域中建立多個共用 IP 位址,則皆會顯示在此處。 已與不同資源建立關聯的任何位址都會呈現灰色。
選取 [儲存]。
在 [IP 設定] 視窗中,檢視指派給 IP 設定的公用 IP 位址。 系統可能需要幾秒鐘的時間,才會顯示新的相關聯 IP 位址。
藉由調整網路安全性群組中的安全性規則,在安全性群組中開啟必要的連接埠。 如需相關資訊,請參閱允許對 VM 的網路流量。
在機器上安裝 Azure CLI,或使用 Azure Cloud Shell。 Cloud Shell 是免費的 Bash Shell,您可以直接在 Azure 入口網站內執行。 Cloud Shell 具有預先安裝和設定的 Azure CLI,可與您的 Azure 帳戶搭配使用。 在下列 Azure CLI 程式碼範例中,選取 [開啟 Cloudshell] 按鈕。 當您選取 [開啟 Cloudshell] 時,Cloud Shell 會在瀏覽器中載入,並提示您登入 Azure 帳戶。
如果在 Bash 中使用本機 Azure CLI,請透過 az login
登入 Azure。
使用 az network nic ip-config update 命令,將公用 IP 位址與 IP 設定建立關聯。 下列範例會將 myPublicIP 現有公用 IP 位址與 ipconfig1 IP 設定建立關聯。 此 IP 設定屬於 myResourceGroup 資源群組中 myVMNic 的現有網路介面。
az network nic ip-config update \
--name ipconfig1 \
--nic-name myVMNic \
--resource-group myResourceGroup \
--public-ip-address myPublicIP
如果您沒有現有的公用 IP 位址,請使用 az network public-ip create 命令建立。 例如,下列命令會在 myResourceGroup 資源群組中建立 myPublicIP 公用 IP 位址。
az network public-ip create --name myPublicIP --resource-group myResourceGroup
如果您不知道連結至 VM 的網路介面名稱,請使用 az vm nic list 命令來檢視名稱。 例如,下列命令會列出已連結至 myResourceGroup 資源群組中 myVM VM 的網路介面:
az vm nic list --vm-name myVM --resource-group myResourceGroup
此輸出包含一或多行,與下列範例類似,其中 myVMNic 是網路介面的名稱:
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
如果您不知道網路介面的 IP 設定名稱,請使用 az network nic ip-config list 命令來擷取名稱。 例如,下列命令會列出 myResourceGroup 資源群組中 myVMNic 網路介面的 IP 設定名稱:
az network nic ip-config list --nic-name myVMNic --resource-group myResourceGroup --out table
使用 az vm list-ip-addresses 命令,檢視指派給 IP 設定的公用 IP 位址。 下列範例展示在 myResourceGroup 資源群組中指派給 myVM VM 的 IP 位址。
az vm list-ip-addresses --name myVM --resource-group myResourceGroup --out table
藉由調整輸入安全性規則,在網路安全組中開啟必要的埠。 如需相關資訊,請參閱允許對 VM 的網路流量。
在您的機器上安裝 Azure PowerShell,或使用 Cloud Shell。 Cloud Shell 是免費的 Bash Shell,您可以直接在 Azure 入口網站內執行。 Cloud Shell 具有預先安裝和設定的 Azure PowerShell,可與您的 Azure 帳戶搭配使用。 在下列 Azure PowerShell 程式碼範例中,選取 [開啟 Cloudshell] 按鈕。 當您選取 [開啟 Cloudshell] 時,Cloud Shell 會在瀏覽器中載入,並提示您登入 Azure 帳戶。
如果您在本機使用 Azure PowerShell,請使用 Connect-AzAccount
登入 Azure。
使用 Get-AzVirtualNetwork 命令,以擷取資源群組中的虛擬網路。 然後,使用 Get-AzVirtualNetworkSubnetConfig 命令,來擷取虛擬網路中的子網路設定。
使用 Get-AzNetworkInterface 命令,來擷取資源群組中的網路介面。 然後,使用 Get-AzPublicIpAddress 命令,來擷取資源群組中現有的公用 IP 位址。
使用 Set-AzNetworkInterfaceIpConfig 命令,將公用 IP 位址與 IP 設定建立關聯。 然後,使用 Set-AzNetworkInterface 命令,將新的 IP 設定寫入網路介面。
下列範例會將 myPublicIP 現有公用 IP 位址與 ipconfig1 IP 設定建立關聯。 此 IP 設定屬於 myVMNic 現有網路介面,該網路介面位於 myVNet 虛擬網路的 mySubnet 子網路中。 所有資源都位於名為 myResourceGroup 的資源群組中。
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name mySubnet -VirtualNetwork $vnet
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$pip = Get-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup
$nic | Set-AzNetworkInterfaceIpConfig -Name ipconfig1 -PublicIPAddress $pip -Subnet $subnet
$nic | Set-AzNetworkInterface
如果您沒有現有的公用 IP 位址,請使用 New-AzPublicIpAddress 命令建立。 例如,下列命令會在 eastus 區域的 myResourceGroup 資源群組中建立 myVMPublicIP 動態公用 IP 位址。
New-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup -AllocationMethod Dynamic -Location eastus
如果您想知道連結至 VM 的網路介面名稱和屬性,請使用 Get-AzVM 命令來檢視名稱和屬性。 例如,下列命令會列出已連結至 myResourceGroup 資源群組中 myVM VM 的網路介面:
$vm = Get-AzVM -name myVM -ResourceGroupName myResourceGroup
$vm.NetworkProfile
此輸出包含一或多行,與下列範例類似。 在範例輸出中,myVMNic 是網路介面的名稱。
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic",
若要擷取網路介面所在的虛擬網路或子網路名稱,請使用 Get-AzNetworkInterface 命令。 例如,下列命令會取得 myResourceGroup 資源群組中 myVMNic 網路介面的虛擬網路和子網路資訊:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$ipConfigs = $nic.IpConfigurations
$ipConfigs.Subnet | Select Id
此輸出包含一或多行,與下列範例類似。 在範例輸出中, myVNet 是虛擬網路的名稱,mySubnet 則是子網路的名稱。
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
若要擷取網路介面的 IP 設定名稱,請使用 Get-AzNetworkInterface 命令。 例如,下列命令會列出 myResourceGroup 資源群組中 myVMNic 網路介面的 IP 設定名稱:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations
此輸出包含一或多行,與下列範例類似。 在範例輸出中,ipconfig1 是 IP 設定的名稱。
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfig1
使用 Get-AzPublicIpAddress 命令,檢視指派給 IP 設定的公用 IP 位址。 下列範例會擷取 myResourceGroup 資源群組中指派給 myPublicIP 公用 IP 位址的位址。
Get-AzPublicIpAddress -Name myPublicIP -ResourceGroupName myResourceGroup | Select IpAddress
如需指派給 IP 設定的公用 IP 位址清單,請執行下列命令:
$nic = Get-AzNetworkInterface -Name myVMNic -ResourceGroupName myResourceGroup
$nic.IPConfigurations
$address = $nic.IPConfigurations.PublicIpAddress
$address | Select Id
此輸出包含一或多行,與下列範例類似。 在範例輸出中,myPublicIP 是指派給 IP 設定的公用 IP 位址名稱。
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
藉由調整輸入安全性規則,在網路安全組中開啟必要的埠。 如需相關資訊,請參閱允許對 VM 的網路流量。
注意
若要與外部使用者共用 VM,您必須將公用 IP 位址新增至 VM。 或者,外部使用者可以透過 Azure Bastion 連線到 VM 的私人 IP 位址。
允許對 VM 的網路流量
您必須先在網路安全組中開啟必要的埠/通訊協定,才能從因特網連線到公用IP位址。 若要在網路安全性群組中開啟這些連接埠,你必須先將網路介面、網路介面的子網路,或兩者同時與任何網路安全性群組建立關聯。 雖然網路安全組會篩選網路介面私人IP位址的流量,但在輸入因特網流量抵達公用IP位址之後,Azure 會將公用位址轉譯為私人IP位址。 因此,如果網路安全性群組防止流量,則與公用 IP 位址的通訊就會失敗。
您可以針對 Azure 入口網站、Azure CLI 或 Azure PowerShell,來檢視網路介面及其子網路的有效安全性規則。
限制
- 如果將新的公用IP位址新增至VM,且流量需要切換至新的IP位址,則必須重新啟動VM,因為這會重設所有現有的流程。
下一步
在本文中,您已了解如何使用 Azure 入口網站、Azure CLI 或 Azure PowerShell,將公用 IP 位址與 VM 建立關聯。