文档中心 弹性公网 IPv6 快速入门 步骤2:云服务器配置 IPv6

步骤2:云服务器配置 IPv6

最近更新时间:2020-01-08 09:35:58

本教程为您介绍如何为 VPC 内的云服务器配置 IPv6,实现 IPv6 的内外网通信。

Linux 云服务器配置 IPv6

Linux 云服务器配置 IPv6 有两种方式:工具配置手动配置

  • 工具配置通过工具一键配置 IPv6。
  • 手动配置需要您对 Linux 命令有一定的熟练掌握程度。

请根据您的实际情况选择对应的方式,推荐您使用更高效的自动配置工具配置 IPv6 地址。

镜像类型 购买时间 是否已开启 IPv6 配置方式
CentOS 7.5/CentOS 7.6 2019-06-31前购买
  • 工具配置
  • 手动配置
  • 2019-06-31后购买
    CentOS 6/CentOS 7(不含7.5/7.6)
    Ubuntu14.04/Ubuntu 12.04
    Debian 8/Debian 9
    CoreOS 17
    Tencent Linux
    2019-11-13 01:00前购买
    2019-11-13 01:00后购买

    工具配置

    说明:

    不支持工具配置的操作系统:FreeBSD、Suse、Ubuntu18。

    请根据云服务器是否已开启 IPv6 选择对应的配置方式:

    未开启 IPv6 的云服务器

    enable_ipv6 工具可以为已分配 IPv6 地址的 CVM 实例一键配置 IPv6 地址。

    使用限制

    • enable_ipv6 工具仅适用于 VPC 网络环境下。
    • enable_ipv6 工具运行时会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。

    操作步骤

    1. 登录云服务器,在云服务器中直接执行如下命令下载 enable_ipv6 工具:
      wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/enable_ipv6.sh
    2. 赋予执行权限后使用管理员权限执行:
      chmod +x ./enable_ipv6.sh
      ./enable_ipv6.sh [网卡名称]  
      # 示例 1:./enable_ipv6.sh eth0
      # 示例 2:./enable_ipv6.sh eth1
    3. (此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。

    已开启 IPv6 的云服务器

    config_ipv6 工具可以为已开启 IPv6 且已分配 IPv6 地址的 CVM 实例一键配置 IPv6 地址。

    使用限制

    • config_ipv6 工具仅适用于 VPC 网络环境下。
    • config_ipv6 工具运行时会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。

    操作步骤

    1. 登录云服务器,在云服务器中直接执行如下命令下载 config_ipv6 工具:
      wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/config_ipv6.sh
    2. 赋予执行权限后使用管理员权限执行:
      chmod +x ./config_ipv6.sh  
      ./config_ipv6.sh [网卡名称] 
      # 示例 1:./config_ipv6.sh eth0
      # 示例 2:./config_ipv6.sh eth1
    3. (此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。

    对于需要自动化配置 IPv6 实例的需求,例如,大批量配置,建议您使用实例自定义数据配合脚本的方式来调用。详情请参见 实例自定义数据。如下为脚本示例(假设是 RHEL 系列,Bash Shell 脚本)。

    说明:

    该示例仅对 eth0 进行配置,实际操作时注意修改为实际使用的网卡名。

    #!/bin/sh
    install_dir=/usr/sbin
    install_path="$install_dir"/config-ipv6
    if [ ! -f "$install_path" ]; then
        tool_url="https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/config_ipv6.sh"
        # download the tool
        if ! wget "$tool_url" -O "$install_path"; then
            echo "[Error] download tool failed, code $?"
            exit "$?"
        fi
    fi
    # chmod the tool
    if ! chmod +x "$install_path"; then
        echo "[Error] chmod tool failed, code $?"
        exit "$?"
    fi
    # run the tool
    $install_path eth0

    手动配置

    如下列举了四种典型的 Linux 云服务器的操作方法:

    说明:

    • 新购 CentOS 7.5/新购 CentOS 7.6 指2019年06月31日购买的云服务器。
    • 存量 CentOS 7.5/存量 CentOS 7.6 指2019年06月31日购买的云服务器。

    新购 CentOS7.5 /新购 CentOS7.6 配置 IPv6

    1. 进入 云服务器控制台 并登录实例。

    2. 执行如下命令,打开/etc/sysconfig/network-scripts/文件夹下的ifcfg-eth0文件。

      vim /etc/sysconfig/network-scripts/ifcfg-eth0
    3. 按 “i” 切换至编辑模式,增加如下内容。

      DHCPV6C=yes

    4. 按 “Esc”,输入 “:wq”,保存文件并返回。

    5. 依次执行如下命令,查看是否已经获取到 IPv6 地址。

      dhclient -6
      ifconfig

    6. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。

      vim /etc/ssh/sshd_config
    7. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。

    8. 按 “Esc”,输入 “:wq”,保存文件并返回。

    9. 执行如下命令,重启 ssh 进程。

      service sshd restart
    10. 执行如下命令,查看 ssh 是否已经监听 IPv6。

      netstat -tupln

    11. 测试连通性,请参见 测试 Linux 云服务器 IPv6 的连通性

    CentOS 6.8 配置 IPv6

    1. 远程连接实例。具体操作,请参见 连接 Linux 实例
    2. 检查实例是否已开启 IPv6 服务,执行如下命令:
      ip addr | grep inet6
      或者
      ifconfig | grep inet6
      • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。
      • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第9步 继续操作。
    3. 执行如下命令,打开/etc/modprobe.d/文件夹下的ipv6.conf文件。
      vi /etc/modprobe.d/ipv6.conf
    4. 按 “i” 切换至编辑模式,将如下的内核参数设置为0。
      options ipv6 disable=0
    5. 按 “Esc”,输入 “:wq”,保存文件并返回。
    6. 执行如下命令,打开etc文件夹下的sysctl.conf.first文件。
      vim /etc/sysctl.conf.first
    7. 按 “i” 切换至编辑模式,将如下的配置文件参数设置为0。
      net.ipv6.conf.all.disable_ipv6 = 0
    8. 按 “Esc”,输入 “:wq”,保存文件并返回。
    9. 执行如下命令,打开/etc/sysconfig/文件夹下的network文件。
      vi /etc/sysconfig/network
    10. 按 “i” 切换至编辑模式,增加如下内容。
      NETWORKING_IPV6=yes
      DHCPV6C=yes
    11. 按 “Esc”,输入 “:wq”,保存文件并返回。
    12. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的route6-eth0文件。
      vim /etc/sysconfig/network-scripts/route6-eth0
    13. 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
      default dev eth0
    14. 按 “Esc”,输入 “:wq”,保存文件并返回。
    15. 重启云服务器,仅通过 service network restart,IPv6 无法正常加载。
    16. 执行如下命令查看重启后 IPv6 是否已经正常加载。
      sysctl -a | grep ipv6 | grep disable
    17. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
      dhclient -6
      ifconfig
    18. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。
      vim /etc/ssh/sshd_config
    19. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。
    20. 按 “Esc”,输入 “:wq”,保存文件并返回。
    21. 执行如下命令,重启 ssh 进程。
      service sshd restart
    22. 执行如下命令,查看 ssh 是否已经监听 IPv6。
      netstat -tupln
    23. 测试连通性,请参见 测试 Linux 云服务器 IPv6 的连通性

    CentOS 7.3/存量 CentOS 7.5/存量 CentOS 7.6 配置 IPv6

    1. 远程连接实例。具体操作,请参见 连接 Linux 实例
    2. 检查实例是否已开启 IPv6 服务,执行如下命令:
      ip addr | grep inet6
      或者
      ifconfig | grep inet6
      • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。
      • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第8步 继续操作。
    3. 执行如下命令,打开etc文件夹下的sysctl.conf文件。
      vim /etc/sysctl.conf
    4. 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
      net.ipv6.conf.all.disable_ipv6 = 0
      net.ipv6.conf.default.disable_ipv6 = 0
      net.ipv6.conf.lo.disable_ipv6 = 0
    5. 按 “Esc”,输入 “:wq”,保存文件并返回。
    6. 执行如下命令,对参数进行加载。
      sysctl -p
    7. 执行如下命令,查看是否修改成功。
      sysctl -a | grep ipv6 | grep disable
      显示结果如下,则已成功修改。
    8. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的ifcfg-eth0文件。
      vim /etc/sysconfig/network-scripts/ifcfg-eth0
    9. 按 “i” 切换至编辑模式,增加如下内容。
      DHCPV6C=yes
    10. 按 “Esc”,输入 “:wq”,保存文件并返回。
    11. 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的route6-eth0文件。
      vim /etc/sysconfig/network-scripts/route6-eth0
    12. 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
      default dev eth0
    13. 按 “Esc”,输入 “:wq”,保存文件并返回。
    14. 执行如下命令,重新启动网卡。
      service network restart
      或者
      systemctl restart network
    15. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
      dhclient -6
      ifconfig
    16. 执行如下命令,打开 /etc/ssh/文件夹下的sshd_config文件。
      vim /etc/ssh/sshd_config
    17. 按 “i” 切换至编辑模式,删除对AddressFamily any的注释(即删除前面的#),为 ssh 等应用程序开启 IPv6 监听。
    18. 按 “Esc”,输入 “:wq”,保存文件并返回。
    19. 执行如下命令,重启 ssh 进程。
      service sshd restart
    20. 执行如下命令,查看 ssh 是否已经监听 IPv6。
      netstat -tupln
    21. 测试连通性,请参见 测试 Linux 云服务器 IPv6 的连通性

    Debian 8.2 配置 IPv6

    1. 远程连接实例。具体操作,请参见 连接 Linux 实例
    2. 检查实例是否已开启 IPv6 服务,执行如下命令:
      ip addr | grep inet6
      或者
      ifconfig | grep inet6
      • 若实例未开启 IPv6 服务,请根据下文继续开启 IPv6 服务。
      • 若返回inet6相关内容,表示实例已成功开启 IPv6 服务,您可以跳至 第6步 继续操作。
    3. 执行如下命令,打开etc文件夹下的sysctl.conf
      vim /etc/sysctl.conf
    4. 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
      net.ipv6.conf.all.disable_ipv6 = 0
      net.ipv6.conf.default.disable_ipv6 = 0
    5. 按 “Esc”,输入 “:wq”,保存文件并返回。
    6. 执行如下命令,对参数进行加载。
      sysctl -p
    7. 依次执行如下命令,查看是否已经获取到 IPv6 地址。
      dhclient -6
      ifconfig
    8. Debian 8.2 系统默认为 ssh(22端口)开启 IPv6 监听,无需特殊配置,您可执行如下命令,进行查看。
      netstat -tupln
    9. 执行如下命令,配置默认路由。
      ip -6 route add default dev eth0
    10. 测试连通性,请参见 测试 Linux 云服务器 IPv6 的连通性

    Windows 云服务器配置 IPv6

    如下操作以 Windows 2012 为例:

    1. 登录云服务器实例,进入操作系统的【控制面板】>【网络和 Internet】>【网络和共享中心】,单击命名为“以太网”的网卡进行编辑。
    2. 在“以太网状态”弹窗中,单击【属性】。
    3. 在“以太网属性”弹窗中,选中【Internet 协议版本6(TCP/IPv6)】并单击【属性】。
    4. 在“Internet 协议版本6(TCP/IPv6)属性”弹窗中,手工输入云服务器获取到的 IPv6 地址并设置 DNS,单击【确定】。
    5. 在操作系统界面,选择左下角的,单击 ,打开 “Windows PowerShell” 窗口,依次执行如下命令配置默认路由以及查看 IPv6 地址,并通过 Ping 和远程桌面测试 IPv6 连通性。
      netsh interface ipv6 add route ::/0 "以太网"
      ipconfig

    测试 Linux 云服务器 IPv6 的连通性

    可通过 Ping 和 ssh 等操作来测试 Linux 云服务器 IPv6 的连通性。

    • 步骤1:通过 Ping 进行测试,操作如下:
      • 如果弹性网卡的 IPv6 地址已开通公网,则可在云服务器中执行 ping6 240c::6666ping6 www.qq.com进行测试,如下图所示:
      • 如果弹性网卡的 IPv6 地址未开通公网,则可在云服务器中 Ping 同一私有网络下的另一台云服务器的 IPv6 地址进行测试,如下图所示:
    • 步骤2:从公网 IPv6 地址 ssh 云服务器,操作如下:
      执行如下命令查看 IPv6 地址,并用 PuTTY 或者 Xshell 等软件,测试能否通过 IPv6 地址 ssh 到云服务器。
      ifconfig

      成功结果如下图所示: