將公用 IP 位址與虛擬機器建立關聯
本文內容
在本文中,您將了解如何將公用 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 建立關聯。