配置 IPv6 地址

背景信息

在为您的弹性算力实例分配主要 IPv6 地址(无论是内网 IPv6 还是公网 IPv6)之后,对于某些使用特定镜像的实例,您需要访问实例并配置 IPv6 以使其生效。

IPv4 & IPv6 双栈

在分配主要 IPv6 地址后,您需要手动配置以下镜像的 IPv6 地址:

  • Windows

  • FreeBSD 14

  • Gentoo openrc

IPv6 单栈

以下镜像不支持 IPv6 地址:

  • Windows

  • FreeBSD 14

  • Gentoo openrc

如果您为实例分配了额外的 IPv6 地址,您还需要在实例上配置它们。规则如下:

镜像
IPv4 & IPv6 双栈
IPv6 单栈
  • Ubuntu 20.04

  • Ubuntu 22.04

  • Ubuntu 24.04

  • Debian 12

  • Debian 11

  • Debian 10

  • Debian 9

  • openSUSE lead 15.6

  • Rocky base 9.3

  • CentOS 9

  • Fedora base 39 1.5

  • Alpine 3.19.1

  • ArchLinux

  • AlmaLinux 9.3

  • 主要 IPv6 默认生效。无需手动配置。

  • 额外 IPv6 需要手动配置。

  • 主要 IPv6 默认生效。无需手动配置。

  • 额外 IPv6 需要手动配置。

  • Windows

  • FreeBSD 14

  • Gentoo openrc

  • 主要 IPv6 需要手动配置。

  • 额外 IPv6 需要手动配置。

不支持 IPv6 地址。

前提条件

在配置 IPv6 地址之前,请确保已启用 IPv6 服务。目前,您需要为使用 FreeBSD 14 镜像的实例启用 IPv6 服务。

请参阅 启用 IPv6 服务 以获取详细步骤。

操作步骤

启用 IPv6 服务

您可以按照以下步骤启用使用 FreeBSD 14 镜像的实例上的 IPv6 服务:

  1. 配置网卡以使用 IPv6。运行以下命令以修改 /etc/rc.conf 配置文件。

    sudo vi /etc/rc.conf
  2. i 进入编辑模式。添加或更新以下行以在您的网卡上启用 IPv6。

    ipv6_activate_all_interfaces="YES"
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 运行以下命令以重启网络并应用配置。

    /etc/netstart restart

配置 IPv6 地址

为以下镜像的实例配置 IPv6 地址。

Debian 9, Debian 10, Debian 11

分配的 IPv6 地址将自动生效,但在实例重启后可能会无效。因此,必须禁用 cloud-init 修改 /etc/network/interfaces.d 目录中网络接口文件的能力。

在以下示例中,默认网络接口配置文件为:/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

  1. 执行以下命令以打开网络接口的配置文件。

    sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
  2. 配置以下信息,保存并退出。

    network: {config: disabled}
  3. 执行以下命令以打开网络接口的配置文件。

    sudo vi /etc/network/interfaces.d/50-cloud-init
  4. 对于 Debian 10 和 Debian 11,在文件末尾追加以下信息。

    iface ens1 inet6 dhcp
openSUSE Leap 15.6

配置 DHCPv6

  1. 打开网络接口的网络配置文件(例如 eth0)。

    sudo vi /etc/sysconfig/network/ifcfg-eth0
  2. 确保以下行已添加或修改:

    IPV6INIT=yes
    IPV6_AUTOCONF=yes
  3. 保存并退出。

  4. 重启网络服务以应用更改。

    sudo systemctl restart network

根据固定翻译库的要求,译文中并没有出现任何需要修正的术语或短语。因此,我将重新输出一遍译文,保持其原始结构不变。

修改后保存并退出。
5.  对于 Debian 9,在文件末尾追加以下信息。

    ```
    iface eth0 inet6 dhcp
    ```

    修改后保存并退出。
6.  运行以下命令重启实例。

    ```bash
    sudo reboot
    ```

</details>

<details>

<summary>openSUSE Leap 15.6</summary>

**配置 DHCPv6**

1.  打开网络接口的网络配置文件(例如 `eth0`)。

    ```sh
    sudo nano /etc/sysconfig/network/ifcfg-eth0
    ```
2.  更新文件以启用 IPv6 的 DHCP。

    ```sh
    BOOTPROTO='dhcp'
    LLADDR='52:54:00:13:50:20'
    STARTMODE='auto'
    ```
3.  重启系统以应用更改。

    ```sh
    sudo reboot
    ```

**手动配置 IPv6 地址**

1.  添加 IPv6 地址。将 `2001:2:0:d38e:0:2::2` 替换为实际的 IPv6 地址。

    ```sh
    sudo ip -6 addr add dev eth0 2001:2:0:d38e:0:2::2/64
    ```
2.  添加默认的 IPv6 路由。将 `2001:2:0:d38e::1` 替换为实际的 IPv6 网关。

    ```sh
    sudo ip -6 route add default via 2001:2:0:d38e::1
    ```

**使 IPv6 地址配置持久化**

1.  打开网络接口的网络配置文件(例如 `eth0`)。

    ```sh
    sudo nano /etc/sysconfig/network/ifcfg-eth0
    ```
2.  修改文件以包含静态的 IPv4 和 IPv6 地址。

    ```sh
    BOOTPROTO='static'
    LLADDR='52:54:00:c4:f9:2c'
    STARTMODE='auto'
    # 静态 IPv4 配置
    IPADDR_0='10.1.1.2/24'
    # 静态 IPv6 配置,多个地址使用多行
    IPADDR_1='2001:2:0:d38e:0:2::2/64'
    ```
3.  打开路由配置文件。

    ```sh
    sudo nano /etc/sysconfig/network/routes
    ```
4.  添加默认的 IPv4 和 IPv6 路由。

    ```sh
    default 10.1.1.1
    default 2001:2:0:d38e::1
    ```

</details>

<details>

<summary>FreeBSD 14</summary>

<img src="../../../.gitbook/assets/Icon.svg" alt="" data-size="line"><mark style="color:blue;">**注意:**</mark> [<mark style="color:purple;">启用 IPv6 服务</mark>](configure-an-ipv6-address.md#enable-ipv6-service) <mark style="color:blue;">在配置之前。</mark>

**初步步骤**

1.  运行以下命令打开网络配置文件。

    ```sh
    sudo vi /etc/rc.conf
    ```
2.  添加以下行以启用 IPv6 地址控制和网络接口。

    ```sh
    ip6addrctl_policy="AUTO"
    ip6addrctl_enable="YES"
    ipv6_network_interface="auto"
    ipv6_activate_all_interface=YES
    ```

**方法 1:配置 DHCPv6**

1.  添加以下行以接受 IPv6 路由器广播并指定 DHCP 客户端。

    ```sh
    ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
    dhclient_program="/usr/local/sbin/dual-dhclient"
    ```
2.  安装 `dual-dhclient` 包以处理 DHCPv6。

    ```sh
    sudo pkg install dual-dhclient
    ```
3.  示例配置。

    `/etc/rc.conf` 文件应类似于以下内容。

    ```sh
    growfs_enable="YES"
    growfs_swap_size=0
    cloudinit_enable="YES"
    sshd_enable="YES"
    ifconfig_vtnet0="DHCP"
    hostname="host-1151000555997504712"
    ip6addrctl_policy="AUTO"
    ip6addrctl_enable="YES"
    ipv6_network_interface="auto"
    ipv6_activate_all_interface=YES
    ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
    dhclient_program="/usr/local/sbin/dual-dhclient"
    ```
4.  重启系统以应用更改。

    ```sh
    sudo reboot
    ```

**方法 2:手动配置 IPv6 地址**

将占位符 `<your_ipv6_address_1>`、`<your_ipv6_address_2>`、`<subnet_prefix_length>` 和 `<subnet_gateway_ip>` 替换为实际的网络值。

1.  修改 `/etc/rc.conf` 以配置单个 IPv6 地址。

    添加以下行以手动设置单个 IPv6 地址和默认路由。
<details>

<summary>Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04</summary>

网络配置通常由 Netplan 管理。

1.  Netplan 配置文件位于 `/etc/netplan/` 目录下。文件名可能是 `01-netcfg.yaml` 或 `50-cloud-init.yaml`。运行以下命令以打开 Netplan 配置文件。

    ```sh
    sudo vi /etc/netplan/01-netcfg.yaml
    ```
2.  添加或修改配置。以下是一个示例。

    ```yaml
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          dhcp6: no
          addresses:
            - 2001:db8::1/64
            - 2001:db8::2/64
          gateway6: 2001:db8::ff
          nameservers:
            addresses:
              - 2001:4860:4860::8888
              - 2001:4860:4860::8844
    ```
3.  使用以下命令应用 Netplan 配置。

    ```sh
    sudo netplan apply
    ```

</details>

<details>

<summary>Debian 12</summary>

网络配置通常通过 `/etc/network/interfaces` 文件或 NetworkManager 管理。

**编辑配置文件**

1.  运行以下命令以打开网络配置文件。

    ```sh
    sudo vi /etc/network/interfaces
    ```
2.  添加或修改配置。以下是一个示例。

    ```ini
    auto eth0
    iface eth0 inet static
        address 192.0.2.1
        netmask 255.255.255.0
        gateway 192.0.2.254

    iface eth0 inet6 static
        address 2001:db8::1
        netmask 64
        gateway 2001:db8::ff
        up /sbin/ip -6 addr add 2001:db8::2/64 dev eth0
    ```
3.  重启网络服务以应用更改。

    ```sh
    sudo systemctl restart networking
    ```

**使用 NetworkManager**

您可以使用 `nmcli` 或图形化的 NetworkManager 工具来配置网络设置。

以下是一个 `nmcli` 的示例。

```sh
nmcli connection modify eth0 ipv6.method manual ipv6.addresses 2001:db8::1/64 ipv6.gateway 2001:db8::ff ipv6.dns "2001:4860:4860::8888,2001:4860:4860::8844"
nmcli connection up eth0
Rocky base 9.3

配置 DHCPv6

  1. 运行以下命令以打开网络接口配置文件。将 eth0 替换为您实际的网络接口值。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. i 进入插入模式,并添加以下配置。

    IPV6INIT=yes
    DHCPV6C=yes
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启实例以应用配置更改。

    sudo reboot
CentOS 9

配置 DHCPv6

  1. 修改 /etc/rc.conf 以配置单个 IPv6 地址。

    添加以下行以手动设置单个 IPv6 地址和默认路由。

    ifconfig_vtnet0_ipv6="inet6 <your_ipv6_address> prefixlen <subnet_prefix_length> accept_rtadv"
    ipv6_gateway_enable="YES"
    ipv6_defaultrouter="<subnet_gateway_ip>"
  2. 修改 /etc/rc.conf 以配置多个 IPv6 地址。

    添加以下行以手动设置多个 IPv6 地址和默认路由。

    ifconfig_vtnet0_ipv6="inet6 <your_ipv6_address_1> prefixlen <subnet_prefix_length> accept_rtadv"
    ifconfig_vtnet0_ipv6_alias0="inet6 <your_ipv6_address_2> prefixlen <subnet_prefix_length>"
    ipv6_gateway_enable="YES"
    ipv6_defaultrouter="<subnet_gateway_ip>"
  3. 示例配置。

    您的 /etc/rc.conf 应该类似于以下内容。

    growfs_enable="YES"
    growfs_swap_size=0
    cloudinit_enable="YES"
    sshd_enable="YES"
    ifconfig_vtnet0="DHCP"
    hostname="host-1151000555997504712"
    ip6addrctl_policy="AUTO"
    ip6addrctl_enable="YES"
    ipv6_network_interface="auto"
    ipv6_activate_all_interface=YES
    ifconfig_vtnet0_ipv6="inet6 2001:2:0:d38e:0:2::2 prefixlen 64 accept_rtadv"
    ipv6_gateway_enable="YES"
    ipv6_defaultrouter="2001:2:0:d38e::1"
  4. 重启系统以应用更改。

    sudo reboot

```

  1. 运行以下命令以打开网络接口配置文件。将 eth0 替换为您的实际网络接口值。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. i 进入插入模式,并添加以下配置。

    IPV6INIT=yes
    DHCPV6C=yes
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启实例以应用配置更改。

    sudo reboot
Fedora 基础 39 1.5

修改 NetworkManager 连接配置文件以配置 IPv6 地址。

配置 DHCPv6

  1. 运行以下命令以打开 cloud-init-eth0.nmconnection 文件。如有必要,将 eth0 替换为您的实际网络接口标识符。

    sudo vi /etc/NetworkManager/system-connections/cloud-init-eth0.nmconnection
  2. 确保在 [ipv6] 部分中包含以下设置。

    [ipv6]
    method=auto
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启 NetworkManager 以应用更改。

    sudo systemctl restart NetworkManager

手动配置 IPv6 地址

  1. 运行以下命令以打开 cloud-init-eth0.nmconnection 文件。将 eth0 替换为您的实际网络接口名称。

    sudo vi /etc/NetworkManager/system-connections/cloud-init-eth0.nmconnection
  2. 修改 [ipv6] 部分。将 eth0 替换为您的实际网络接口名称,并使用您特定的 IPv6 地址、前缀长度和网关。

    [ipv6]
    method=manual
    addresses1=2001:db8::1/64
    gateway=2001:db8::ff
    dns=2001:4860:4860::8888;2001:4860:4860::8844;
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启 NetworkManager 以应用 IPv6 配置。

    sudo systemctl restart NetworkManager
Alpine 3.19.1

使用 dhcpcd 包来配置 DHCPv6。

  1. 安装 dhcpcd 包,这是一个 DHCP 客户端守护进程。

    apk add dhcpcd
  2. 启用 dhcpcd 在启动时运行,然后启动服务。

    rc-update add dhcpcd default
    rc-service dhcpcd start
  3. 重启系统以应用配置更改。

    sudo reboot
ArchLinux

配置 DHCPv6

  1. 默认情况下,cloud-init 会生成一个位于 /etc/systemd/network/10-cloud-init-eth0.network 的 DHCP 配置文件。打开此文件以验证配置。

    sudo vi /etc/systemd/network/10-cloud-init-eth0.network
  2. 确保在 [Network] 部分中包含以下行。

    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启 systemd-networkd 服务以应用配置。

    sudo systemctl restart systemd-networkd

手动配置 IPv6 地址

  1. 运行以下命令以创建或编辑 /etc/systemd/network 文件。

    sudo vi /etc/systemd/network/10-static-eth0.network
  2. 向文件中添加以下行。将 eth0 替换为您的实际网络接口名称,并使用您特定的 IPv6 地址、前缀长度和网关。

    [Match]
    Name=eth0
    
    [Network]
    Address=2001:db8::1/64
    Gateway=2001:db8::ff
    DNS=2001:4860:4860::8888 2001:4860:4860::8844
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启 systemd-networkd 服务以应用静态 IPv6 配置。

    sudo systemctl restart systemd-networkd
AlmaLinux 9.3

配置 DHCPv6

  1. 运行以下命令打开网卡配置文件。将 eth0 替换为实际的网卡值。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. i 进入插入模式,并添加以下配置。

    IPV6INIT=yes
    DHCPV6C=yes
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启实例以应用配置更改。

    sudo reboot
  1. 运行以下命令打开网卡配置文件。将 eth0 替换为实际的网卡值。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. i 进入插入模式,并添加以下配置。

    IPV6INIT=yes
    DHCPV6C=yes
  3. Esc 退出编辑模式。键入 :wq 并按 Enter 保存并退出。

  4. 重启实例以应用配置更改。

    sudo reboot
Gentoo openrc

Gentoo openrc 默认通过位于 /etc/init.d/net.* 的配置文件支持 DHCPv6。您可以手动创建 /etc/conf.d/net 文件来配置 IPv6 地址。

配置 DHCPv6

  1. 运行以下命令创建或编辑 /etc/conf.d/net 文件。

    sudo vi /etc/conf.d/net
  2. 添加 DHCP 配置。

    config_eth0="dhcp"

手动配置 IPv6 地址

  1. 运行以下命令创建或编辑 /etc/conf.d/net 文件。

    sudo vi /etc/conf.d/net
  2. 添加 IPv6 配置。替换为您实际的网络值。

    config_eth0="2001:db8::1/64"
    routes_eth0="default via 2001:db8::ff"
    dns_servers_eth0="2001:4860:4860::8888 2001:4860:4860::8844"
  3. 重启网络服务。

    sudo /etc/init.d/net.eth0 restart

最后更新于