按照本頁說明操作,即可查看運算執行個體的網路介面、網路、子網路和 IP 位址。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
必要的角色
如要取得查看執行個體網路設定所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) 或 Compute 網路管理員 (roles/compute.networkAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備查看執行個體網路設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要查看執行個體的網路設定,必須具備下列權限:
-
查看執行個體的網路設定:
compute.instances.get執行個體 -
查看執行個體的 IP 位址:
compute.instances.list在專案中
查看 IP 位址
您可以查看執行個體的內部和外部 IP 位址。IP 位址可以是 IPv4 或 IPv6 位址。
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選用:使用「Filter」(篩選) 方塊,限制顯示的執行個體數量。
如果執行個體有外部 IP 位址,該位址會顯示在「外部 IP」欄下方。
如果「外部 IP」欄位空白,表示執行個體沒有外部 IP 位址。如果執行個體沒有外部 IP 位址,您可以指派一個。
視資料欄顯示選項而定,您可能會看到比上圖更多或更少的資料欄。
gcloud
您可以使用下列兩個指令查看執行個體的 IP 位址:
gcloud compute instances list會顯示運算執行個體使用的所有 IP 位址,無論是靜態或臨時位址。gcloud compute addresses list會顯示指派給運算執行個體的所有保留 IP 位址。
這項工作說明如何使用 gcloud compute instances 指令查看 IP 位址。
如要查看執行個體的內部和外部 IP 位址,請使用
gcloud compute instances list指令。gcloud compute instances list
您可以附加
--filter子句,限制指令傳回的執行個體數量,例如--filter='zone:us-central1-c'。輸出結果會與下列內容相似:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS webapp1 us-central1-c c3-highmem-88 true 192.0.2.11 RUNNING my-instance us-central1-c n4-standard-2 192.0.2.126 203.0.113.6 RUNNING my-dual-stack us-central1-a e2-micro 192.0.2.54 203.0.113.7 RUNNING 2001:db8:2:2:2:2:2:2/96 new-ipv6-only us-central1-a n4-standard-2 2001:db8:1:1:1:1:1:1/96 RUNNING如果「外部 IP 位址」欄位空白,表示執行個體沒有該類型的已定義 IP 位址,您可以指派一個。
如要查看特定執行個體的內部或外部 IP 位址,請使用
gcloud compute instances describe指令,並加上--format旗標來篩選輸出內容。內部位址
如要查看特定執行個體的內部 IP 位址,請使用下列任一指令:
IPv4 位址:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].networkIP)'192.0.2.11
IPv6 位址:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].ipv6Address)'2001:db8:2:2:2:2:2:2
外部地址
如要查看特定執行個體的外部 IP 位址,請使用下列任一指令:
IPv4 位址:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].accessConfigs[0].natIP)'203.0.113.6
IPv6 位址:
gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE \ --format='get(networkInterfaces[0].ipv6AccessConfigs[0].externalIpv6)'2001:db8:3:3:3:3:3:3
更改下列內容:
INSTANCE_NAME:要查看內部或外部 IP 的執行個體名稱ZONE:執行個體所在的可用區名稱
如果指令未傳回 IP 位址,表示執行個體未設定外部 IP 位址。
REST
向 instances.get 方法提出 GET 要求。只要在要求中附加 $fields 查詢參數,即可將輸出內容限制為僅限所需欄位。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME$fields=name,networkInterfaces.networkIP,networkInterfaces.accessConfigs.natIP,networkInterfaces.ipv6AccessConfigs.externalIpv6
更改下列內容:
PROJECT_NAME:包含執行個體的專案名稱ZONE:要查詢的執行個體可用區INSTANCE_NAME:要傳回的執行個體資源名稱
如果未設定任何 IP 位址,輸出內容就不會顯示該欄位。如果運算執行個體使用具有外部 IPv6 位址的雙堆疊網路,回應主體會類似於下列內容:
{
"name": "my-dual-stack-vm",
"networkInterfaces": [
{
"networkIP": "10.0.0.2",
"accessConfigs": [
{
"natIP": "104.155.21.204"
}
],
"ipv6AccessConfigs": [
{
"externalIpv6": "2600:1900:4010:8b2:0:0:0:0"
}
]
}
]
}
下列欄位包含必要資訊:
networkIP:指派的內部 IPv4 位址natIP:指派的外部 IPv4 位址externalIpv6:指派的外部 IPv6 位址
Python
Java
查看執行個體的網路介面
每個運算執行個體至少有一個虛擬網路介面 (vNIC),且每個網路介面都會使用虛擬私有雲網路中的專屬子網路。您可以使用下列方法,查看執行個體已設定的網路介面、Dynamic Network Interface (NIC) 和網路介面屬性。
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選用:使用「Filter」(篩選) 方塊,限制顯示的執行個體數量。
按一下要檢查的執行個體名稱。
在「Networking」(網路) 區段的「Network interfaces」(網路介面) 下方,您會看到下列資訊:
- 執行個體的網路介面 (NIC) 名稱,例如
nic0或nic0.14 - 與每個 NIC 相關聯的虛擬私有雲網路和子網路
- Dynamic NIC 的 VLAN ID
- 網路介面類型
- 主要內部和外部 IP 位址
- IP 堆疊類型
- 執行個體的網路介面 (NIC) 名稱,例如
按一下 NIC 名稱,即可開啟「網路介面詳細資料」頁面。這個頁面會顯示 NIC 使用的防火牆和路徑,您也可以對 NIC 執行連線測試。
gcloud
如要查看運算執行個體的網路介面 (NIC),請使用 gcloud compute instances describe 指令。您可以在指令中附加 --format 選項,將傳回的資訊限制在特定欄位,並變更顯示方式,例如:
gcloud compute instances describe INSTANCE_NAME --zone=ZONE \
--format="flattened(name,networkInterfaces[].name, networkInterfaces[].network.basename(), networkInterfaces[].stackType, networkInterfaces[].nicType)"
更改下列內容:
INSTANCE_NAME:要查看的執行個體名稱ZONE:要查看的執行個體可用區
輸出結果會與下列內容相似:
name: test-instance networkInterfaces[0].name: nic0 networkInterfaces[0].network: default networkInterfaces[0].nicType: GVNIC networkInterfaces[0].stackType: IPV4_ONLY networkInterfaces[1].name: nic1 networkInterfaces[1].network: prod-ipv6 networkInterfaces[1].nicType: GVNIC networkInterfaces[1].stackType: IPV4_IPV6 networkInterfaces[1].name: nic1.2 networkInterfaces[1].network: alt-ipv6-net networkInterfaces[1].nicType: GVNIC networkInterfaces[1].stackType: IPV4_IPV6 networkInterfaces[1].parentNicName: nic1
REST
建構 GET 要求,傳送至 instances.get 方法。在要求中附加 $fields 查詢參數,即可將輸出內容限制為僅限 networkInterfaces 屬性。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:包含執行個體的專案 IDZONE:執行個體的可用區INSTANCE_NAME:執行個體的名稱
HTTP 方法和網址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=networkInterfaces
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/my-project/global/networks/network-name-1",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-1",
"networkIP": "10.128.0.15",
"name": "nic0",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"fingerprint": "mBy9xvkWA9M=",
"stackType": "IPV4_ONLY",
"nicType": "GVNIC"
},
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/my-project/global/networks/network-name-2",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-2",
"networkIP": "10.0.20.2",
"name": "nic1",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"ipv6AccessConfigs": [
{
"kind": "compute#accessConfig",
"type": "DIRECT_IPV6",
"name": "external-ipv6",
"externalIpv6": "2600:1900:4000:8447:0:0:0:0",
"externalIpv6PrefixLength": 96,
"publicPtrDomainName": "",
"networkTier": "PREMIUM"
}
],
"fingerprint": "rx6hfNA94f4=",
"stackType": "IPV4_IPV6",
"ipv6AccessType": "EXTERNAL",
"nicType": "GVNIC",
"parentNicName": "nic1"
},
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/my-project/global/networks/network-name-3",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-name-3",
"networkIP": "10.0.26.2",
"name": "nic1.1",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"type": "ONE_TO_ONE_NAT",
"name": "External NAT",
"networkTier": "PREMIUM"
}
],
"ipv6AccessConfigs": [
{
"kind": "compute#accessConfig",
"type": "DIRECT_IPV6",
"name": "external-ipv6",
"externalIpv6": "2600:1900:4000:8450:0:0:0:0",
"externalIpv6PrefixLength": 96,
"publicPtrDomainName": "",
"networkTier": "PREMIUM"
}
],
"fingerprint": "rx6hfNA94f4=",
"stackType": "IPV4_IPV6",
"ipv6AccessType": "EXTERNAL",
"nicType": "GVNIC",
"parentNicName": "nic1"
}
]
}
查看網路中的所有運算執行個體
如要查看特定網路中的所有運算執行個體,請使用下列其中一種方法。
控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
選用:使用「Filter」(篩選) 方塊,限制顯示的電視網數量。
按一下要列出運算執行個體的網路名稱。
選取「執行個體」分頁,即可查看該網路中的執行個體。
gcloud
如要查看使用特定網路的運算執行個體,請使用 gcloud compute instances list 指令。
使用 --filter 旗標,只列出使用特定網路的執行個體。
您也可以使用 --format 標記限制結果並設定格式,例如:
gcloud compute instances list \
--filter 'networkInterfaces[].network:NETWORK_NAME' \
--format="table(name:sort=1,machineType.basename(),zone.basename(),networkInterfaces[].subnetwork)"
輸出結果會與下列內容相似:
NAME: c2-tier1-multinic MACHINE_TYPE: c2-standard-30 ZONE: us-central1-c SUBNETWORK: ['https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/default', 'https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/webapps-external-subnet']
NAME: c3-with-lssd MACHINE_TYPE: c3-standard-4-lssd ZONE: us-central1-a SUBNETWORK: ['https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
NAME: example-instance3 MACHINE_TYPE: n2-custom-2-163840-ext ZONE: us-central1-b SUBNETWORK: ['https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
NAME: n4-test-windows MACHINE_TYPE: n4-standard-2 ZONE: us-central1-c SUBNETWORK: ['https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/default']
判斷是否已啟用 Tier_1 網路
請使用下列其中一種方法,判斷執行個體是否已啟用各 VM 的 Tier_1 網路效能。
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選用:使用「Filter」(篩選器) 方塊,限制顯示的執行個體數量。
按一下要檢查的執行個體名稱。
在「Networking」(網路) 區段中,查看「Total egress bandwidth tier」(總輸出頻寬級別) 的值:
TIER_1:已啟用 Tier_1 網路。-:未啟用 Tier_1 網路。
gcloud
如要查看執行個體的 networkPerformanceConfig 設定,請使用 gcloud compute instances describe 指令。您可以在指令中附加 --format 選項,將傳回的資訊限制在特定欄位,並變更顯示方式,例如:
gcloud compute instances describe INSTANCE_NAME \
--zone=ZONE \
--format="text(name, networkPerformanceConfig)"
如果未為執行個體設定 Tier_1 網路,輸出內容就不會包含 networkPerformanceConfig 欄位。如果執行個體已啟用 Tier_1 網路,輸出內容會與下列內容相似:
name: c2-tier1-multinic networkPerformanceConfig.totalEgressBandwidthTier: TIER_1
REST
建構對 instances.get 方法的 GET 要求。在要求中附加 $fields 查詢參數,即可將輸出內容限制為僅限 name、networkPerformanceConfig 和 nicType 欄位。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME?$fields=name,networkPerformanceConfig,networkInterfaces.nicType
更改下列內容:
PROJECT_NAME:包含執行個體的專案名稱ZONE:要查詢的執行個體可用區INSTANCE_NAME:要傳回的執行個體資源名稱
如果未為執行個體設定 Tier_1 網路,輸出內容就不會包含 networkPerformanceConfig 欄位。如果執行個體已啟用 Tier_1 網路,輸出內容會類似以下範例:
{
"name": "c2-tier1-multinic",
"networkInterfaces": [
{
"nicType": "GVNIC"
},
{
"nicType": "GVNIC"
}
],
"networkPerformanceConfig": {
"totalEgressBandwidthTier": "TIER_1"
}
}
後續步驟
- 如要瞭解 Compute Engine 網路介面和 IP 位址概念,請參閱「VM 網路總覽」
- 建立具備多個網路介面的 VM
- 為執行個體新增 Dynamic NIC
- 對 VM 執行個體進行基準測試,瞭解較高網路頻寬
- 透過負載平衡功能縮短應用程式延遲時間