弹性公网 IPv6 Linux 云服务器配置 IPv6

Linux 云服务器配置 IPv6 有三种方式:自动获取、工具配置 和 手动配置。请根据你的实际情况选择对应的方式,对于不支持自动获取方式的情况,推荐你使用更高效的工具配置方式配置 IPv6 地址。

相关产品
弹性公网 IPv6 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:默认云服务器的 IPv6 地址仅具有私网通信能力,若你想要通过该 IPv6 地址访问公网或被公网访问,则需通过弹性公网 IPv6 为该 IPv6 地址开通公网能力,操作详情请参见 为云服务器的 IPv6 地址开通公网。

·自动获取:指镜像的默认配置支持通过 DHCP 动态获取 IPv6 地址,目前还未支持获取 IPv6 默认路由。

TencentOS,CentOS 8.0/CentOS 8.2/CentOS 8.4支持自动获取,IPv6 信息将自动下发。

·工具配置:指通过工具一键配置 IPv6,根据镜像类型及购买时间的不同,使用的配置方法也不同,具体如下表所示。

镜像类型 购买时间 是否默认已开启 IPv6 工具配置(推荐)
CentOS 7.5/CentOS 7.6 2019-06-30后购买 是 config_ipv6 工具
 2019-06-30前购买 否 enable_ipv6 工具
CentOS 6.x/CentOS 7.x(不含7.5/7.6) 2019-11-13 01:00后购买 是 config_ipv6 工具
 2019-11-13 01:00前购买 否 enable_ipv6 工具
Ubuntu 14.04/Ubuntu 12.04/Ubuntu 16/Ubuntu 18/Ubuntu 16.04/Ubuntu 18.04/Debian 8/Debian 9/CoreOS 17/Tencent Linux 2019-11-13 01:00后购买 是 config_ipv6 工具
 2019-11-13 01:00前购买 否 enable_ipv6 工具
FreeBSD/SUSE/openSUSE 2019-11-13 01:00前购买 否 不支持工具配置, 请参见 手动配置
 2019-11-13 01:00后购买 是 

·手动配置:需要你对 Linux 命令有一定的熟练掌握程度。这篇列举了几种常用镜像的手动配置方法供你参考,如果你有其他镜像类型的手动配置需求,请 提交工单 申请。

·CentOS 7.3/CentOS 7.5/ CentOS 7.6 配置 IPv6

·CentOS 6.8 配置 IPv6

·Ubuntu 14/Ubuntu 16/Ubuntu 18/Ubuntu 20/Ubuntu 22 配置 IPv6

·Debian 8.2 配置 IPv6

·OpenSUSE 42 配置 IPv6

·SUSE 10 配置 IPv6

·FreeBSD 11 配置 IPv6

·Rocky Linux 9.0

·TencentOS Server 3/TencentOS Server 4 配置 IPv6

二、config_ipv6 工具配置

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

三、使用限制

·config_ipv6 工具仅适用于 VPC 网络环境下。

·config_ipv6 工具运行时会自动重启网卡、网络服务,短时间内网络可能会不可用,请慎重执行。

四、操作步骤

1. 登录 云服务器,执行 ifconfig 或 ip address 命令确定需要配置 IPv6 地址的网卡,如下所示,本例 eth0 无 IPv6 地址(fe80::是本机私有地址)。

2. 在云服务器中直接执行如下命令下载 config_ipv6 工具。

wget https://gerryguan-1306210569.cos.ap-chongqing.myqcloud.com/scripts/config_ipv6.sh

3. 赋予执行权限后使用管理员权限执行如下命令,配置过程中请输入y确认配置操作。

chmod +x ./config_ipv6.sh # 赋予执行权限./config_ipv6.sh [网卡名称] # 网卡名称请根据步骤1查询到的实际接口填写,本例以 eth0 为例# 示例 1:./config_ipv6.sh eth0# 示例 2:./config_ipv6.sh eth1

4. 执行 ifconfig 查询 IPv6 地址的配置情况,出现如下所示报文表示配置成功。

5. (此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。

五、开机自动配置 IPv6

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

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

#!/bin/shinstall_dir=/usr/sbininstall_path="$install_dir"/config-ipv6if [ ! -f "$install_path" ]; then tool_url="https://gerryguan-1306210569.cos.ap-chongqing.myqcloud.com/scripts/config_ipv6.sh" # download the tool if ! wget "$tool_url" -O "$install_path"; then echo "[Error] download tool failed, code $?" exit "$?" fifi# chmod the toolif ! chmod +x "$install_path"; then echo "[Error] chmod tool failed, code $?" exit "$?"fi# run the toolyes|$install_path eth0

六、enable_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 操作系统)重启云服务器,使上述配置生效。

十、CentOS 7.3/CentOS 7.5/CentOS 7.6 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回 inet6 相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第6步 继续操作。

3. 执行以下步骤修改并保存 sysctl.conf 文件。

3.1 执行如下命令,打开 /etc 文件夹下的 sysctl.conf 文件

vim /etc/sysctl.conf

3.2 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。

net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

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

4. 执行如下命令,对参数进行加载。

sysctl -p

5. 执行如下命令,查看是否修改成功。

sysctl -a | grep ipv6 | grep disable

显示结果如下,则已成功修改。

6. 执行以下步骤修改并保存ifcfg-eth0文件。

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

vim /etc/sysconfig/network-scripts/ifcfg-eth0

6.2 按 “i” 切换至编辑模式,增加如下内容。

DHCPV6C=yes

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

7. 执行以下步骤修改并保存route6-eth0文件。

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

vim /etc/sysconfig/network-scripts/route6-eth0

7.2 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。

default dev eth0 via fe80::feee:ffff:feff:ffff

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

8. 执行如下命令,重新启动网卡。

service network restart或者systemctl restart network

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

ifconfig

若出现以下报文表示已成功获取到 IPv6 地址。

10. 请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。

十一、CentOS 6.8 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回inet6相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第5步 继续操作。

3. 执行以下步骤修改并保存ipv6.conf 文件。

3.1 执行如下命令,打开/etc/modprobe.d/文件夹下的ipv6.conf 文件。

vi /etc/modprobe.d/ipv6.conf

3.2 按 “i” 切换至编辑模式,将如下的内核参数设置为0。

options ipv6 disable=0

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

4. 执行以下步骤修改并保存sysctl.conf.first 文件。

4.1 执行如下命令,打开etc文件夹下的sysctl.conf.first 文件。

vim /etc/sysctl.conf.first

4.2 按 “i” 切换至编辑模式,将如下的配置文件参数设置为0。

net.ipv6.conf.all.disable_ipv6 = 0

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

5. 执行以下步骤修改并保存network文件。

5.1 执行如下命令,打开/etc/sysconfig/文件夹下的network文件。

vi /etc/sysconfig/network

5.2 按 “i” 切换至编辑模式,增加如下内容。

NETWORKING_IPV6=yesDHCPV6C=yes

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

6. 执行以下步骤修改并保存route6-eth0文件。

6.1 执行如下命令,打开或创建/etc/sysconfig/network-scripts/文件夹下的route6-eth0文件。

vim /etc/sysconfig/network-scripts/route6-eth0

6.2 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。

default dev eth0 via fe80::feee:ffff:feff:ffff

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

7. 重启云服务器,若仅通过 service network restart,IPv6 无法正常加载。

8. 执行如下命令查看重启后 IPv6 是否已经正常加载。

sysctl -a | grep ipv6 | grep disable

若出现以下报文说明 IPv6 已经正常加载。

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

ifconfig

若出现以下报文说明成功获取 IPv6 地址。

10. 请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。

十二、Ubuntu 14/Ubuntu 16/Ubuntu 18/Ubuntu 20/Ubuntu 22 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回inet6相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第5步 或 第6步 继续操作。

3. 运行如下命令,并做相应修改,开启 IPv6 功能支持。

vi /etc/sysctl.conf

并做如下修改:

#net.ipv6.conf.all.disable_ipv6 = 1#net.ipv6.conf.default.disable_ipv6 = 1#net.ipv6.conf.lo.disable_ipv6 = 1net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

4. 运行sysctl -p 使配置生效。

5. 如果镜像类型为 Ubuntu 14/Ubuntu16,请执行如下操作配置 IPv6。

5.1 运行如下命令,打开网卡配置文件。

vi /etc/network/interfaces

eth0为网卡标识符,你需要修改成实际的标识符,在文件中根据实际信息添加以下配置:

·单 IPv6 地址:

auto eth0iface eth0 inet6 staticaddress <IPv6地址>netmask <子网前缀长度>gateway <IPv6网关>

·多 IPv6 地址:

auto eth0iface eth0 inet6 staticaddress <IPv6地址>netmask <子网前缀长度>gateway <IPv6网关>auto eth0:0iface eth0:0 inet6 staticaddress <IPv6地址1>netmask <子网前缀长度>gateway <IPv6网关>auto eth0:1iface eth0:1 inet6 staticaddress <IPv6地址2>netmask <子网前缀长度>gateway <IPv6网关>

5.2 重启网络服务:运行service network restart 或 systemctl restart networking。

6. 如果镜像类型为 Ubuntu 18、Ubuntu 20 和 Ubuntu 22,请执行如下操作配置 IPv6。

6.1 获取 IPv6 网关地址。

6.1.1 登录 私有网络控制台,查看云服务器所在子网的 IPv6 CIDR 信息。

6.1.2 根据 IPv6 CIDR 信息得到 IPv6 网关地址:系统默认会采用子网 IPv6 CIDR 的“.1”地址作为网关,如上图 IPv6 CIDR 为2402:4e00:1018:9a01::/64,则网关地址为2402:4e00:1018:9a01::1。

6.2 编辑网卡配置文件。

vi /etc/netplan/50-cloud-init.yaml

6.3 根据 步骤 i 获得的 IPv6 网关地址,添加 IPv6 网关配置:

·如果镜像类型为 Ubuntu 18 、Ubuntu 20,则执行如下操作。

注意:只添加 gateway6。

network: version: 2 ethernets: eth0: dhcp4: true # 开启 dhcp match: macaddress: 52:54:00:c3:4a:0e # MAC 地址 set-name: eth0 # 网卡名 gateway6: 2402:4e00:1018:9a01::1 # 设置IPv6网关地址

·如果镜像类型为 Ubuntu 22,则执行如下操作。

注意:只添加 routes。

network: version: 2 ethernets: eth0: dhcp4: true # 开启dhcp match: macaddress: 52:54:00:c3:4a:0e # MAC地址 set-name: eth0 # 网卡名 routes: – to: default via: "2402:4e00:1018:9a01::1" # 设置IPv6网关地址

6.4 执行如下命令,使配置生效。

netplan apply

6.5 执行如下命令,检查 IPv6 网关配置是否生效。

ip -6 route show | grep default

7. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

十三、Debian 8.2 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回inet6相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第5步 继续操作。

3. 执行以下步骤修改并保存sysctl.conf 文件。

3.1 执行如下命令,打开etc文件夹下的sysctl.conf。

vim /etc/sysctl.conf

3.2 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。

net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0

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

4. 执行如下命令,对参数进行加载。

sysctl -p

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

ifconfig

若出现以下报文,证明成功获取 IPv6 地址。

6. Debian 8.2 系统默认为 ssh(22端口)开启 IPv6 监听,无需特殊配置,你可执行如下命令,进行查看。

netstat -tupln

7. 执行如下命令,配置默认路由。

ip -6 route add default dev eth0 via fe80::feee:ffff:feff:ffff

8. 请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。

十四、OpenSUSE 42 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 执行如下命令,检查实例是否已开启 IPv6 功能支持。

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回inet6相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第4步 继续操作。

3. 运行如下命令,并做相应修改,开启 IPv6 功能支持。

vi /etc/sysctl.conf

做如下修改:

#net.ipv6.conf.all.disable_ipv6 = 1#net.ipv6.conf.default.disable_ipv6 = 1#net.ipv6.conf.lo.disable_ipv6 = 1net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

4. 运行sysctl -p使配置生效。

5. 配置 IPv6,OpenSUSE 42镜像类型的云服务器 IPv6 操作步骤有 脚本方式 和 手动方式。请根据实际情况选择配置方式。

·脚本方式

a. 将如下脚本拷贝到 Shell 文件中,这里以 test.sh 为例。

·dev 表示网卡设备名,例如 eth0、eth1。

·index 表示这是第几个 IPv6 地址,从0开始计数。

·ip6 表示本机的 IPv6 地址,例如2607:f0d0:1002:0011:0000:0000:0000:0002。

·prefix_len 表示子网前缀长度,例如64。

dev=$1 index=$2ip6=$3 prefix_len=$4 ifcfg_file="/etc/sysconfig/network/ifcfg-$dev" if [ ! -f "$ifcfg_file" ]; then touch "$ifcfg_file" fi echo -e "\\nIPADDR_$index='$ip6'\\nPREFIXLEN_$index='$prefix_len'" >> "$ifcfg_file" # update default IPv6 routing: echo "default $netip::1 – $ifcfg_file" >> /etc/sysconfig/network/routes service network restart

b. 执行脚本,举例如下。

./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64

·手动方式

a. 运行如下脚本,打开网卡配置文件。

vi /etc/sysconfig/network/ifcfg-eth0

eth0为网卡标识符,你需要修改成实际的标识符。在文件中根据实际信息添加以下配置:

·单 IPv6 地址:

IPADDR_0=<IPv6地址> PREFIXLEN_0=<子网前缀长度>

·多 IPv6 地址:

IPADDR_0=<IPv6地址>PREFIXLEN_0=<子网前缀长度>IPADDR_1=<IPv6地址1>PREFIXLEN_1=<子网前缀长度>IPADDR_2=<IPv6地址2>PREFIXLEN_2=<子网前缀长度>

b. 运行vi /etc/sysconfig/network/routes 打开路由配置文件,添加配置项。

default <IPv6网关> – –

c. 重启网络服务:运行 service network restart 或 systemctl restart networking。

6. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

十五、SUSE 10 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 运行如下命令,并做相应修改,开启 IPv6 功能支持。

vi /etc/sysctl.conf

做如下修改:

#net.ipv6.conf.all.disable_ipv6 = 1#net.ipv6.conf.default.disable_ipv6 = 1#net.ipv6.conf.lo.disable_ipv6 = 1net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

3. 运行sysctl -p 使配置生效。

4. 配置 IPv6,SUSE 10镜像类型的云服务器 IPv6 操作步骤有 脚本方式 和 手动方式。请根据实际情况选择配置方式。

·脚本方式

a. 将如下脚本拷贝到 Shell 文件中,这里以 test.sh 为例。

·dev 表示网卡设备名,例如 eth0、eth1。

·index 表示这是第几个 IPv6 地址,从0开始计数。

·ip6 表示本机的 IPv6 地址,例如2607:f0d0:1002:0011:0000:0000:0000:0002。

·prefix_len 表示子网前缀长度,例如64。

dev=$1 index=$2ip6=$3 prefix_len=$4 ifcfg_file="/etc/sysconfig/network/ifcfg-$dev" if [ ! -f "$ifcfg_file" ]; then touch "$ifcfg_file" fi echo -e "\\nIPADDR_$index='$ip6'\\nPREFIXLEN_$index='$prefix_len'" >> "$ifcfg_file" # update default IPv6 routingnetip=$(echo $ip6 | awk -F":" '{print $1":"$2":"$3":"$4}') echo "default $netip::1 – $ifcfg_file" >> /etc/sysconfig/network/routes service network restart

b. 执行脚本,举例如下。

./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64

·手动方式

a. 运行如下脚本,打开网卡配置文件。

vi /etc/sysconfig/network/ifcfg-eth0

eth0为网卡标识符,你需要修改成实际的标识符。在文件中根据实际信息添加以下配置:

·单 IPv6 地址:

IPADDR_0=<IPv6地址>PREFIXLEN_0=<子网前缀长度>

·多 IPv6 地址:

IPADDR_0=<IPv6地址>PREFIXLEN_0=<子网前缀长度>IPADDR_1=<IPv6地址1>PREFIXLEN_1=<子网前缀长度>IPADDR_2=<IPv6地址2>PREFIXLEN_2=<子网前缀长度>

b. 运行vi /etc/sysconfig/network/routes 打开路由配置文件,添加配置项。

default <IPv6网关> – –

c. 重启网络服务:运行 service network restart 或 systemctl restart networking。

5. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

十六、FreeBSD 11 配置 IPv6

FreeBSD 11 配置 IPv6 有 脚本方式 和 手动方式,请根据实际情况选择配置方式。

十七、脚本方式

注意脚本方式配置会重启网络,请谨慎执行。

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 将如下脚本拷贝到 shell 文件中,这里以“test.sh”为例。

+ dev 表示网卡设备名,FreeBSD 常见为 vtnet0、em0,不支持 eth0 命名。+ ipv6 表示本机的 IPv6 地址,例如 2402:4e00:1000:4200:0:8f0c:d527:b985。+ prefix_len 表示子网前缀长度,例如 64。+ gw 表示 IPv6 网关,请在控制台子网详情中查看,例如 2402:4e00:1000:4200::1。

#!/bin/sh# 用法:sh ./test.sh <网卡名> <IPv6地址> <前缀长度> <IPv6网关>dev="$1"ipv6="$2"prefix_len="$3"gw="$4"rc_conf="/etc/rc.conf"if [ -z "$dev" ] || [ -z "$ipv6" ] || [ -z "$prefix_len" ] || [ -z "$gw" ]; then echo "usage: $0 <dev> <ipv6> <prefix_len> <gateway>" exit 1fiset_key() { local file="$1" local key="$2" local value="$3" if grep -q "^${key}=" "$file" 2>/dev/null; then sed -i '' -e "s|^${key}=.*|${key}=\\"${value}\\"|" "$file" else echo "${key}=\\"${value}\\"" >> "$file" fi}# 移除镜像中预置的 IPv6 禁用项sed -i '' -e "/^ipv6_network_interfaces=/d" "$rc_conf"set_key "$rc_conf" ipv6_activate_all_interfaces "YES"set_key "$rc_conf" "ifconfig_${dev}_ipv6" "inet6 ${ipv6} prefixlen ${prefix_len}"set_key "$rc_conf" ipv6_defaultrouter "${gw}"service netif restartservice routing restart

3. 执行脚本,举例如下。

sh ./test.sh vtnet0 2402:4e00:1000:4200:0:8f0c:d527:b985 64 2402:4e00:1000:4200::1

注意:说明:

注意:IPv6 网关请以控制台子网详情中显示的地址为准,不要由脚本从 IPv6 地址自行推导。对含 :: 压缩写法的地址或非 /64 前缀,按地址段拼接推导会得出错误网关。脚本已做幂等处理,重复执行不会产生重复配置行。

4. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

十八、手动方式

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 运行vi /etc/rc.conf 命令,打开系统启动配置文件。

3. 删除或注释ipv6_network_interfaces="none",并将ipv6_activate_all_interfaces="NO"修改为 ipv6_activate_all_interfaces="YES",保存退出。

4. 在同一文件中添加 IPv6 地址与默认路由。vtnet0为网卡标识符,你需要修改成实际的标识符。

注意:单个 IPv6 地址使用ifconfig_<网卡>_ipv6配置;多个 IPv6 地址请使用别名变量ifconfig_<网卡>_alias<n>从 alias0 开始顺序添加,请勿重复书写同一个变量名,否则后一条会覆盖前一条。

·单 IPv6 地址:

ipv6_activate_all_interfaces="YES"ifconfig_vtnet0_ipv6="inet6 <IPv6地址> prefixlen 64"ipv6_defaultrouter="<IPv6网关>"

·多 IPv6 地址:

ipv6_activate_all_interfaces="YES"ifconfig_vtnet0_ipv6="inet6 <IPv6地址1> prefixlen 64"ifconfig_vtnet0_alias0="inet6 <IPv6地址2> prefixlen 64"ipv6_defaultrouter="<IPv6网关>"

5. 运行service netif restart && service routing restart使配置生效。

注意:该操作会短暂中断网络,远程执行前请准备好控制台 VNC 等带外通道,生产环境建议直接重启实例。FreeBSD 的/etc/netstart脚本已被/etc/rc.d/*取代,不接受参数,无法实现重启网络的效果。

6. 执行如下命令验证配置结果。

ifconfig vtnet0 inet6netstat -rn -f inet6ping6 <IPv6网关>

7. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

十九、Rocky Linux 9.0 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

20、Running Environment

Operating System: Ubuntu 24.04.3 LTS / x86_64Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回 inet6 相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第5步 或 第6步 继续操作。

3. 执行以下步骤修改并保存 sysctl.conf 文件。

3.1 执行如下命令,打开 etc 文件下的 sysctl.conf 文件。

vim /etc/sysctl.conf

3.2 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。

net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

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

4. 运行 sysctl -p 使配置生效。

5. 执行以下步骤修改并保存 ifcfg-eth0 文件。

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

vim /etc/sysconfig/network-scripts/ifcfg-eth0

5.2 按 “i” 切换至编辑模式,增加如下内容。

DHCPV6C=yesIPV6INIT=yes

21、Running Environment

Operating System: Ubuntu 24.04.3 LTS / x86_64Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)

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

6. 执行以下步骤修改并保存 route6-eth0 文件。

6.1 查看/etc/sysconfig/network-scripts/文件夹下的 route6-eth0文件是否存在,如果不存在,则通过如下命令进行创建。

touch /etc/sysconfig/network-scripts/route6-eth0

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

vim /etc/sysconfig/network-scripts/route6-eth0

6.3 按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。

default dev eth0 via fe80::feee:ffff:feff:ffff

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

7. 重启云服务器。

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

ifconfig

若出现以下报文,表示已成功获取到 IPv6 地址。

9. 执行如下命令,检查 IPv6 网关配置是否生效。

ip -6 route show | grep default

10. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

22、TencentOS Server 3/TencentOS Server 4 配置 IPv6

注意:说明:

注意:TencentOS Server 3 用户态兼容 CentOS 8/RHEL 8,网络由 NetworkManager 管理,同时兼容 network-scripts 的 ifcfg 配置文件;TencentOS Server 4 默认使用 NetworkManager 管理网络,且默认不安装 network-scripts,系统中不存在 /etc/sysconfig/network-scripts/ 目录与 network 服务。

注意:两个版本仅在 配置网卡获取 IPv6 地址 与 配置 IPv6 默认路由 两步存在差异,这篇通过选项卡分别说明,请根据实际镜像版本选择对应页签,其余步骤两个版本完全一致。

1. 远程连接实例,具体操作请参见 登录及远程连接。

2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:

ip addr | grep inet6或者ifconfig | grep inet6

·若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。

·若返回 inet6 相关内容,表示实例已成功开启 IPv6 功能支持,你可以跳至 第 8 步 继续操作。

3. 执行以下步骤修改并保存 sysctl.conf 文件。

4. 执行如下命令,打开 /etc 文件夹下的 sysctl.conf 文件。

vim /etc/sysctl.conf

5. 按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为 0。

net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0

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

注意:说明:

注意:TencentOS Server 4 也可将相同的参数写入 /etc/sysctl.d/99-ipv6.conf 文件,效果相同。

7. 执行如下命令,对参数进行加载,并确认修改结果。

sysctl -psysctl -a | grep ipv6 | grep disable

显示结果中 disable_ipv6 均为 0,则表示已成功开启。若参数写入了 /etc/sysctl.d/99-ipv6.conf,请将加载命令替换为 sysctl -p /etc/sysctl.d/99-ipv6.conf。

8. 执行如下命令,查看网卡设备与 NetworkManager 连接名称,并确认该连接的 IPv6 方法未被禁用。

nmcli device statusnmcli connection shownmcli -f ipv6.method connection show <连接名称>

注意:说明:

注意:请记录待配置网卡的设备名(如 eth0)与对应的连接名称(NAME 列,常见为 eth0、System eth0 或 cloud-init eth0),后续步骤中的 <连接名称> 请替换为你实际查询到的名称。

注意:若设备状态为 unmanaged,表示该网卡未被 NetworkManager 管理,配置不会生效,请先参见 TencentOS Server 网络配置指南 恢复网卡的托管状态。

注意:若查询结果为 ipv6.method: disabled,说明该连接在 NetworkManager 中被单独关闭了 IPv6,仅修改 sysctl 参数不会生效,需执行如下命令开启(以 eth0 连接为例):

注意:nmcli connection modify eth0 ipv6.method dhcp

9. 执行以下操作,配置网卡获取 IPv6 地址的方式。

TencentOS Server 3TencentOS Server 41. 执行如下命令,打开 /etc/sysconfig/network-scripts/ 文件夹下的 ifcfg-eth0 文件。vim /etc/sysconfig/network-scripts/ifcfg-eth02. 按 “i” 切换至编辑模式,增加如下内容,通过 DHCPv6 自动获取 IPv6 地址。IPV6INIT=yesDHCPV6C=yesIPV6_AUTOCONF=no3. 按 “Esc”,输入 “:wq”,保存文件并返回。说明:若不使用 DHCPv6,需配置静态 IPv6 地址,请将 ifcfg-eth0 中的内容改为如下(<IPv6地址> 替换为控制台实际分配的 IPv6 地址,前缀长度通常为 64):IPV6INIT=yesIPV6_AUTOCONF=noIPV6ADDR=<IPv6地址>/64IPV6_DEFAULTGW=fe80::feee:ffff:feff:ffff1. 执行如下命令,开启该连接通过 DHCPv6 自动获取 IPv6 地址。nmcli connection modify <连接名称> ipv6.method dhcp说明:ipv6.method 常用取值:auto(通过 SLAAC 与 DHCPv6 自动获取,NetworkManager 默认值)、dhcp(仅通过 DHCPv6 获取,不使用 SLAAC)、manual(使用静态 IPv6 地址)、disabled(关闭该连接的 IPv6)。2. 若需配置静态 IPv6 地址,请改为执行如下命令(<IPv6地址> 替换为控制台实际分配的 IPv6 地址,前缀长度通常为 64)。nmcli connection modify <连接名称> ipv6.method manual ipv6.addresses <IPv6地址>/64

10. 执行以下操作,为网卡的 IPv6 添加默认出口。

TencentOS Server 3TencentOS Server 41. 查看 /etc/sysconfig/network-scripts/ 文件夹下的 route6-eth0 文件是否存在,如果不存在,则通过如下命令进行创建。touch /etc/sysconfig/network-scripts/route6-eth02. 执行如下命令,打开 route6-eth0 文件,按 “i” 切换至编辑模式,增加如下内容后,按 “Esc”,输入 “:wq”,保存文件并返回。vim /etc/sysconfig/network-scripts/route6-eth0default dev eth0 via fe80::feee:ffff:feff:ffff1. 执行如下命令,为该连接添加 IPv6 默认路由。nmcli connection modify <连接名称> ipv6.routes "::/0 fe80::feee:ffff:feff:ffff"

注意:说明:

注意:当前无法通过 DHCPv6 下发 IPv6 默认路由,必须手动添加。fe80::feee:ffff:feff:ffff 为 VPC 的 IPv6 默认网关地址。

11. 执行如下命令,使配置生效。

nmcli connection reloadnmcli connection up <连接名称>

注意:TencentOS Server 4 不存在 network 服务,请勿使用 systemctl restart network、service network restart 等命令。

注意:TencentOS Server 3 默认使用 NetworkManager 管理网络,推荐使用上述命令使配置生效;若已安装 network-scripts 且网络由 network 服务管理,也可执行 ifdown eth0 && ifup eth0 或 systemctl restart network。

注意:若你希望在不中断已有连接的情况下应用变更,也可执行 nmcli dev reapply eth0(eth0 请替换为实际网卡设备名)。

12. 依次执行如下命令,查看是否已经获取到 IPv6 地址,并检查 IPv6 默认路由是否生效。

ifconfigip -6 route show | grep default

若出现 inet6 地址且默认路由中包含 fe80::feee:ffff:feff:ffff,表示已成功获取到 IPv6 地址且默认路由配置成功。

13. 请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。

23、使用 keyfile 文件配置(可选)

若你希望通过直接编辑配置文件的方式配置,可编辑 NetworkManager 的连接配置文件(TencentOS Server 3/TencentOS Server 4 均适用)。

1. 执行如下命令,打开 /etc/NetworkManager/system-connections/ 文件夹下对应的连接配置文件(以 eth0.nmconnection 为例,文件名以实际查询为准)。

vim /etc/NetworkManager/system-connections/eth0.nmconnection

2. 按 “i” 切换至编辑模式,在文件中增加或修改 [ipv6] 配置段,示例如下(DHCPv6 方式):

[ipv6]method=dhcpaddr-gen-mode=defaultroutes=::/0,fe80::feee:ffff:feff:ffff

若使用静态 IPv6 地址,示例如下:

[ipv6]method=manualaddress1=<IPv6地址>/64routes=::/0,fe80::feee:ffff:feff:ffff

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

4. 执行如下命令,加载并应用配置。

nmcli connection reloadnmcli connection up eth0

注意:/etc/NetworkManager/system-connections/ 下的配置文件权限必须为 600,否则 NetworkManager 会忽略该配置。可在保存后执行如下命令修正权限:

注意:chmod 600 /etc/NetworkManager/system-connections/eth0.nmconnection

注意:若完成上述步骤后仍未获取到 IPv6 地址,请确认该实例已在 私有网络控制台 中为子网和云服务器分配 IPv6 地址,并检查安全组是否放通 IPv6 流量。

25、SSH 支持 IPv6 配置

注意:如果需要使用 IPv6 地址远程连接,则需要开启 SSH 的 IPv6 支持。

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

vim /etc/ssh/sshd_config

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

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

4. 执行如下命令,重新加载配置。

service sshd reload

5. 执行netstat -tupln 命令,若出现以下报文,表示查 ssh 已成功监听 IPv6。FreeBSD 系统不支持该命令参数组合,请执行sockstat -l6 查看监听情况。

赞 (0)
上一篇 4天前
下一篇 4天前