帮你快速理解、总结文档立即下载

Linux 云服务器配置 IPv6

最近更新时间:2026-11-04 11:23:26
本文档已由 AI 辅助审校
我的收藏
Linux 云服务器配置 IPv6 有三种方式:自动获取、工具配置 和 手动配置。请根据您的实际情况选择对应的方式,对于不支持自动获取方式的情况,推荐您使用更高效的工具配置方式配置 IPv6 地址。
说明:
默认云服务器的 IPv6 地址仅具有私网通信能力,若您想要通过该 IPv6 地址访问公网或被公网访问,则需通过弹性公网 IPv6 为该 IPv6 地址开通公网能力,操作详情请参见 为云服务器的 IPv6 地址开通公网。

自动获取
:指镜像的默认配置支持通过 DHCP 动态获取 IPv6 地址,目前还未支持获取 IPv6 默认路由。
TencentOS,CentOS 8.0/CentOS 8.2/CentOS 8.4支持自动获取,IPv6 信息将自动下发。
注意:
若您想要在控制台为云服务器重新分配 IPv6 地址,需要控制台修改后,再在云服务器内通过 ‘dhclient -6’ 指令重新触发 DHCP 请求。
当前无法通过 DHCP 获取 IPv6默认路由,需要手动添加,参考 步骤7 完成手动配置。

工具配置
:指通过工具一键配置 IPv6,根据镜像类型及购买时间的不同,使用的配置方法也不同,具体如下表所示。
镜像类型
购买时间
是否默认已开启 IPv6
工具配置(推荐)
CentOS 7.5/CentOS 7.6
2019-06-30后购买
是
2019-06-30前购买
否
CentOS 6.x/CentOS 7.x(不含7.5/7.6)
2019-11-13 01:00后购买
是
2019-11-13 01:00前购买
否
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后购买
是
2019-11-13 01:00前购买
否
FreeBSD/SUSE/openSUSE
2019-11-13 01:00前购买
否
2019-11-13 01:00后购买
是

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

工具配置

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/sh
install_dir=/usr/sbin
install_path="$install_dir"/config-ipv6
if [ ! -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 "$?"
fi
fi
# chmod the tool
if ! chmod +x "$install_path"; then
echo "[Error] chmod tool failed, code $?"
exit "$?"
fi
# run the tool
yes|$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 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.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=yes
DHCPV6C=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 = 1

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
4. 运行sysctl -p 使配置生效。
5. 
如果镜像类型
为 Ubuntu 14/Ubuntu16,请执行如下操作配置 IPv6。
5.1 运行如下命令,打开网卡配置文件。
vi /etc/network/interfaces
eth0为网卡标识符,您需要修改成实际的标识符,在文件中根据实际信息添加以下配置:
单 IPv6 地址:
auto eth0
iface eth0 inet6 static
address <IPv6地址>
netmask <子网前缀长度>
gateway <IPv6网关>
多 IPv6 地址:
auto eth0
iface eth0 inet6 static
address <IPv6地址>
netmask <子网前缀长度>
gateway <IPv6网关>

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

iface eth0:1 inet6 static
address <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 = 0
net.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 = 1

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.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=$2
ip6=$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 = 1

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.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=$2
ip6=$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
netip=$(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 1
fi

set_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 restart
service 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 inet6
netstat -rn -f inet6
ping6 <IPv6网关>
7. 请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。

Rocky Linux 9.0 配置 IPv6

1. 远程连接实例,具体操作请参见 登录及远程连接。
2. 检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6

Running Environment

Operating System: Ubuntu 24.04.3 LTS / x86_64

Runtime 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 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.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=yes
IPV6INIT=yes

Running Environment

Operating System: Ubuntu 24.04.3 LTS / x86_64

Runtime 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 功能。

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 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
6. 按 “Esc”,输入 “:wq”,保存文件并返回。
说明:
TencentOS Server 4 也可将相同的参数写入 /etc/sysctl.d/99-ipv6.conf 文件,效果相同。
7. 执行如下命令,对参数进行加载,并确认修改结果。
sysctl -p
sysctl -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 status
nmcli connection show
nmcli -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 3
TencentOS Server 4
1. 执行如下命令,打开 /etc/sysconfig/network-scripts/ 文件夹下的 ifcfg-eth0 文件。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
2. 按 “i” 切换至编辑模式,增加如下内容,通过 DHCPv6 自动获取 IPv6 地址。
IPV6INIT=yes
DHCPV6C=yes
IPV6_AUTOCONF=no
3. 按 “Esc”,输入 “:wq”,保存文件并返回。
说明:
若不使用 DHCPv6,需配置静态 IPv6 地址,请将 ifcfg-eth0 中的内容改为如下(<IPv6地址> 替换为控制台实际分配的 IPv6 地址,前缀长度通常为 64):
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=<IPv6地址>/64
IPV6_DEFAULTGW=fe80::feee:ffff:feff:ffff
1. 执行如下命令,开启该连接通过 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 3
TencentOS Server 4
1. 查看 /etc/sysconfig/network-scripts/ 文件夹下的 route6-eth0 文件是否存在,如果不存在,则通过如下命令进行创建。
touch /etc/sysconfig/network-scripts/route6-eth0
2. 执行如下命令,打开 route6-eth0 文件,按 “i” 切换至编辑模式,增加如下内容后,按 “Esc”,输入 “:wq”,保存文件并返回。
vim /etc/sysconfig/network-scripts/route6-eth0
default dev eth0 via fe80::feee:ffff:feff:ffff
1. 执行如下命令,为该连接添加 IPv6 默认路由。
nmcli connection modify <连接名称> ipv6.routes "::/0 fe80::feee:ffff:feff:ffff"
说明:
当前无法通过 DHCPv6 下发 IPv6 默认路由,必须手动添加。fe80::feee:ffff:feff:ffff 为 VPC 的 IPv6 默认网关地址。
11. 执行如下命令,使配置生效。
nmcli connection reload
nmcli 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 默认路由是否生效。
ifconfig
ip -6 route show | grep default
若出现 inet6 地址且默认路由中包含 fe80::feee:ffff:feff:ffff,表示已成功获取到 IPv6 地址且默认路由配置成功。
13. 请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。

使用 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=dhcp
addr-gen-mode=default
routes=::/0,fe80::feee:ffff:feff:ffff
若使用静态 IPv6 地址,示例如下:
[ipv6]
method=manual
address1=<IPv6地址>/64
routes=::/0,fe80::feee:ffff:feff:ffff
3. 按 “Esc”,输入 “:wq”,保存文件并返回。
4. 执行如下命令,加载并应用配置。
nmcli connection reload
nmcli connection up eth0
注意:
/etc/NetworkManager/system-connections/ 下的配置文件权限必须为 600,否则 NetworkManager 会忽略该配置。可在保存后执行如下命令修正权限:
chmod 600 /etc/NetworkManager/system-connections/eth0.nmconnection
注意:
若完成上述步骤后仍未获取到 IPv6 地址,请确认该实例已在 私有网络控制台 中为子网和云服务器分配 IPv6 地址,并检查安全组是否放通 IPv6 流量。

附录

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 查看监听情况。