按照本頁說明操作,即可查看運算執行個體的網路介面、網路、子網路和 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」欄下方。
如果「External IP」(外部 IP) 欄為空白,表示執行個體沒有外部 IP 位址。如果執行個體沒有外部 IP 位址,則可以指派一個。
視資料欄顯示選項而定,您可能會看到比上圖更多或更少的資料欄。
gcloud
您可以使用下列兩個指令查看執行個體的 IP 位址:
gcloud compute instances list會顯示運算執行個體使用的所有 IP 位址,包括靜態和臨時 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),且每個網路介面都使用虛擬私有雲網路中的專屬子網路。您可以使用下列方法,查看執行個體已設定的網路介面、動態網路介面 (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
建構對 instances.get 方法的 GET 要求。在要求中附加 $fields 查詢參數,即可將輸出內容限制為僅包含 networkInterfaces 屬性。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:包含執行個體的專案 IDZONE:執行個體的可用區INSTANCE_NAME:執行個體名稱
HTTP 方法和網址:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/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」(虛擬私有雲網路) 頁面。
選用:使用「篩選」方塊,限制顯示的網路數量。
按一下要列出運算執行個體的網路名稱。
選取「執行個體」分頁,即可查看該網路中的執行個體。
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"
}
}
後續步驟
- 在「VM 的網路總覽」中,瞭解 Compute Engine 網路介面和 IP 位址概念
- 建立具備多個網路介面的 VM
- 在執行個體中新增動態 NIC
- 將 VM 執行個體的較高網路頻寬基準化
- 透過負載平衡改善應用程式延遲