

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理 EC2 執行個體的 IPv6 地址
<a name="working-with-ipv6-addresses"></a>

如果已建立 VPC 和子網與 IPv6 CIDR 區塊的關聯，您可以在啟動期間或之後將 IPv6 地址指派給執行個體。您可以在主控台中透過**執行個體**頁面或**網路介面**頁面存取執行個體的 IPv6 位址。下列任務會設定執行個體的 IP 位址。若要改為設定網路介面的 IP 位址，請參閱 [管理網路介面的 IP 位址：](managing-network-interface-ip-addresses.md)。

**Topics**
+ [將 IPv6 地址指派給執行個體](#assign-ipv6-address)
+ [檢視執行個體的 IPv6 位址](#view-ipv6-addresses)
+ [使用執行個體中繼資料來檢視 IPv6 位址](#view-ipv6-addresses-imds)
+ [從執行個體取消指派 IPv6 地址](#unassign-ipv6-address)

## 將 IPv6 地址指派給執行個體
<a name="assign-ipv6-address"></a>

您可以指定子網路 IPv6 位址範圍中的 IPv6 位址，或讓 Amazon EC2 為您選擇一個。此地址會指派給主要網路介面。請注意，下列執行個體類型不支援 IPv6 地址：C1、M1、M2、M3 和 T1。

------
#### [ Console ]

**若要在啟動時指派 IPv6 位址**  
請遵循該程序來[啟動執行個體](ec2-launch-instance-wizard.md)。當您設定[網路設定](ec2-instance-launch-parameters.md#liw-network-settings)時，請選擇**自動指派 IPv6 IP **的選項。如果沒有看到此選項，則選取的子網路沒有相關聯的 IPv6 CIDR 區塊。

**在啟動之後指派 IPv6 地址**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體，然後選取 **Actions (動作)**、**Networking (聯網)**、**Manage IP addresses (管理 IP 地址)**。

1. 展開網路介面。在 **IPv6 addresses (IPv6 地址)** 下選擇 **Assign new IP address (指派新 IP 地址)**。

1. 輸入子網路範圍中的 IPv6 位址，或將欄位保留空白，讓 Amazon EC2 為您選擇 IPv6 位址。如果沒有看到此選項，則執行個體子網路沒有相關聯的 IPv6 CIDR 區塊。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**若要在啟動時指派 IPv6 位址**  
請使用 `--ipv6-addresses` 選項並搭配 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令。下列範例會指派兩個 IPv6 位址。

```
--ipv6-addresses Ipv6Address=2001:db8::1234:5678:1.2.3.4 Ipv6Address=2001:db8::1234:5678:5.6.7.8
```

若要讓 Amazon EC2 選擇 IPv6 位址，請改用 `--ipv6-address-count` 選項。下列範例會指派兩個 IPv6 位址。

```
--ipv6-address-count 2
```

**在啟動之後指派 IPv6 地址**  
使用 [assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) 命令。下列範例會指派兩個 IPv6 位址。

```
aws ec2 assign-ipv6-addresses \ 
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4 2001:db8::1234:5678:5.6.7.8
```

若要讓 Amazon EC2 選擇 IPv6 位址，請改用 `--ipv6-address-count` 選項。下列範例會指派兩個 IPv6 位址。

```
aws ec2 assign-ipv6-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-address-count 2
```

------
#### [ PowerShell ]

**若要在啟動時指派 IPv6 位址**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 搭配 `-Ipv6Address` 參數。下列範例會指派兩個 IPv6 位址。

```
-Ipv6Address $ipv6addr1,$ipv6addr2
```

定義 IPv6 位址，如下所示。

```
$ipv6addr1 = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr1.Ipv6Address = "2001:db8::1234:5678:1.2.3.4"
$ipv6addr2 = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr2.Ipv6Address = "2001:db8::1234:5678:5.6.7.8"
```

若要讓 Amazon EC2 選擇 IPv6 位址，請改用 `-Ipv6AddressCount` 參數。下列範例會指派兩個 IPv6 位址。

```
-Ipv6AddressCount 2
```

**在啟動之後指派 IPv6 地址**  
使用 [Register-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Ipv6AddressList.html) cmdlet。下列範例會指派兩個 IPv6 位址。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address "2001:db8::1234:5678:1.2.3.4","2001:db8::1234:5678:5.6.7.8"
```

若要讓 Amazon EC2 選擇 IPv6 位址，請改用 `-Ipv6AddressCount` 參數。下列範例會指派兩個 IPv6 位址。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6AddressCount 2
```

------

## 檢視執行個體的 IPv6 位址
<a name="view-ipv6-addresses"></a>

您可檢視執行個體的 IPv6 位址。

------
#### [ Console ]

**若要檢視執行個體的 IPv6 位址**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取實例。

1. 在 **Networking (聯網)** 標籤上，找出 **IPv6 addresses (IPv6 地址)**。

------
#### [ AWS CLI ]

**若要檢視執行個體的 IPv6 位址**  
使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[].Ipv6Address" \
    --output text
```

以下為範例輸出。

```
2001:db8::1234:5678:1.2.3.4
```

------
#### [ PowerShell ]

**若要檢視執行個體的 IPv6 位址**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.Ipv6Address
```

以下為範例輸出。

```
2001:db8::1234:5678:1.2.3.4
```

------

## 使用執行個體中繼資料來檢視 IPv6 位址
<a name="view-ipv6-addresses-imds"></a>

連線至執行個體後，可以使用執行個體中繼資料來擷取 IPv6 位址。首先，必須從 `http://169.254.169.254/latest/meta-data/network/interfaces/macs/` 中取得執行個體的 MAC 位址。

------
#### [ IMDSv2 ]

**Linux**  
透過 Linux 執行個體執行下面的命令。

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

**Windows**  
透過 Windows 執行個體執行下面的 cmdlet。

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

------
#### [ IMDSv1 ]

**Linux**  
透過 Linux 執行個體執行下面的命令。

```
curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

**Windows**  
透過 Windows 執行個體中執行下列 cmdlet。

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

------

## 從執行個體取消指派 IPv6 地址
<a name="unassign-ipv6-address"></a>

您可以隨時從執行個體取消指派 IPv6 地址。

------
#### [ Console ]

**從執行個體取消指派 IPv6 地址**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體，然後選取 **Actions (動作)**、**Networking (聯網)**、**Manage IP addresses (管理 IP 地址)**。

1. 展開網路介面。在 **IPv6 addresses (IPv6 地址)** 下，選擇 IPv6 地址旁的 **Unassign (取消指派)**。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**從執行個體取消指派 IPv6 地址**  
使用 [unassign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-ipv6-addresses.html) 命令。

```
aws ec2 unassign-ipv6-addresses \ 
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4
```

------
#### [ PowerShell ]

**從執行個體取消指派 IPv6 地址**  
使用 [Unregister-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Ipv6AddressList.html) cmdlet。

```
Unregister-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address 2001:db8::1234:5678:1.2.3.4
```

------