配置 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 10Debian 11,在文件末尾追加以下内容。

    iface ens1 inet6 dhcp

    修改完成后,保存并退出。

  5. 对于 Debian 9,在文件末尾追加以下内容。

    iface eth0 inet6 dhcp

    修改完成后,保存并退出。

  6. 最后,执行以下命令重启实例。

    sudo reboot
openSUSE Leap 15.6

配置 DHCPv6

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

    sudo nano /etc/sysconfig/network/ifcfg-eth0
  2. 在文件中添加以下内容以启用 IPv6 的 DHCP。

    codeBOOTPROTO='dhcp'
    LLADDR='52:54:00:13:50:20'
    STARTMODE='auto'
  3. 重启系统以使配置生效。

    sudo reboot

手动配置 IPv6 地址

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

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

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

使 IPv6 地址配置持久化

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

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

    BOOTPROTO='static'
    LLADDR='52:54:00:c4:f9:2c'
    STARTMODE='auto'
    # Static IPv4 configuration
    IPADDR_0='10.1.1.2/24'
    # Static IPv6 configuration, use multiple lines for multiple addresses
    IPADDR_1='2001:2:0:d38e:0:2::2/64'
  3. 打开路由配置文件。

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

    default 10.1.1.1
    default 2001:2:0:d38e::1
FreeBSD 14

注意

在配置前请先启用 IPv6 服务

前置步骤

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

    sudo vi /etc/rc.conf
  2. 在文件中添加以下内容,以启用 IPv6 地址控制和网络接口。

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

方法一:配置 DHCPv6

  1. 添加以下内容以接受 IPv6 路由通告并指定 DHCP 客户端。

    ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
    dhclient_program="/usr/local/sbin/dual-dhclient"
  2. 安装 dual-dhclient 软件包以支持 DHCPv6。

    sudo pkg install dual-dhclient
  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 accept_rtadv"
    dhclient_program="/usr/local/sbin/dual-dhclient"
  4. 重启系统使配置生效。

    sudo reboot

方法二:手动配置 IPv6 地址

将占位符 <your_ipv6_address_1><your_ipv6_address_2><subnet_prefix_length><subnet_gateway_ip> 替换为你的实际网络信息。

  1. 配置单个 IPv6 地址。

    修改 /etc/rc.conf,添加以下内容手动设置 IPv6 地址和默认路由。

    ifconfig_vtnet0_ipv6="inet6 <your_ipv6_address> prefixlen <subnet_prefix_length> accept_rtadv"
    ipv6_gateway_enable="YES"
    ipv6_defaultrouter="<subnet_gateway_ip>"
  2. 配置多个 IPv6 地址。

    修改 /etc/rc.conf,添加以下内容。

    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
Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04

网络配置通常由 Netplan 管理。

  1. Netplan 配置文件位于 /etc/netplan/ 目录下,文件名可能类似于 01-netcfg.yaml50-cloud-init.yaml

    运行以下命令打开 Netplan 配置文件。

    sudo vi /etc/netplan/01-netcfg.yaml
  2. 添加或修改配置,例如:

    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 配置。

    sudo netplan apply
Debian 12

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

编辑配置文件

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

    sudo vi /etc/network/interfaces
  2. 添加或修改配置,例如:

    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. 重启网络服务以应用更改。

    sudo systemctl restart networking

使用 NetworkManager

你也可以使用 nmcli 命令行工具或图形界面的 NetworkManager 进行配置。

以下是 nmcli 的示例命令。

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. 运行以下命令以打开网络接口配置文件。将 eth0 替换为您实际的网络接口值。

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

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

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

    sudo reboot
Fedora base 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
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

最后更新于