Linux 云服务器配置 IPv6 有两种方式:工具配置 和 手动配置。请根据您的实际情况选择对应的方式,推荐您使用更高效的自动配置工具配置 IPv6 地址。
说明:默认云服务器的 IPv6 地址仅具有私网通信能力,若您想要通过该 IPv6 地址访问公网或被公网访问,则需通过弹性公网 IPv6 为该 IPv6 地址开通公网能力,操作详情请参见 为云服务器的 IPv6 地址开通公网。
工具配置:指通过工具一键配置 IPv6,根据镜像类型及购买时间的不同,使用的配置方法也不同,具体如下表所示。
镜像类型 | 购买时间 | 是否默认已开启 IPv6 | 工具配置 (推荐) |
---|---|---|---|
CentOS 8.0以上 | 任何时间购买 | 是 | config_ipv6 工具 |
CentOS 7.5/CentOS 7.6 | 2019-06-30前购买 | 否 | enable_ipv6 工具 |
2019-06-30后购买 | 是 | config_ipv6 工具 | |
CentOS 6.x/CentOS 7.x(不含7.5/7.6) | 2019-11-13 01:00前购买 | 否 | enable_ipv6 工具 |
2019-11-13 01:00后购买 | 是 | config_ipv6 工具 | |
|
2019-11-13 01:00前购买 | 否 | enable_ipv6 工具 |
2019-11-13 01:00后购买 | 是 | config_ipv6 工具 | |
FreeBSD、Suse、OpenSUSE | 2019-11-13 01:00前购买 | 否 | 不支持工具配置, 请参见 手动配置 |
2019-11-13 01:00后购买 | 是 |
手动配置:需要您对 Linux 命令有一定的熟练掌握程度。本文列举了几种常用镜像的手动配置方法供您参考,如果您有其他镜像类型的手动配置需求,请 提交工单 申请。
enable_ipv6 工具可以为已分配 IPv6 地址的 CVM 实例,一键配置 IPv6 地址。
登录云服务器,在云服务器中直接执行如下命令下载 enable_ipv6 工具。
wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/enable_ipv6.sh
赋予执行权限后,使用管理员权限执行如下命令:
chmod +x ./enable_ipv6.sh
./enable_ipv6.sh [网卡名称]
# 示例 1:./enable_ipv6.sh eth0
# 示例 2:./enable_ipv6.sh eth1
(此步骤仅适用于 CoreOS 操作系统)重启云服务器,使上述配置生效。
config_ipv6 工具可以为已开启 IPv6 且已分配 IPv6 地址的 CVM 实例,一键配置 IPv6 地址。
登录云服务器,在云服务器中直接执行如下命令下载 config_ipv6 工具。
wget https://iso-1251783334.cos.ap-guangzhou.myqcloud.com/scripts/config_ipv6.sh
赋予执行权限后使用管理员权限执行如下命令:
chmod +x ./config_ipv6.sh
./config_ipv6.sh [网卡名称]
# 示例 1:./config_ipv6.sh eth0
# 示例 2:./config_ipv6.sh eth1
(此步骤仅适用于 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
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
inet6
相关内容,表示实例已成功开启 IPv6 功能支持,您可以跳至 第5步 继续操作。执行以下步骤修改并保存ipv6.conf
文件。
执行如下命令,打开/etc/modprobe.d/
文件夹下的ipv6.conf
文件。
vi /etc/modprobe.d/ipv6.conf
按 “i” 切换至编辑模式,将如下的内核参数设置为0。
options ipv6 disable=0
按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下步骤修改并保存sysctl.conf.first
文件。
执行如下命令,打开etc
文件夹下的sysctl.conf.first
文件。
vim /etc/sysctl.conf.first
按 “i” 切换至编辑模式,将如下的配置文件参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0
按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下步骤修改并保存network
文件。
执行如下命令,打开/etc/sysconfig/
文件夹下的network
文件。
vi /etc/sysconfig/network
按 “i” 切换至编辑模式,增加如下内容。
NETWORKING_IPV6=yes
DHCPV6C=yes
按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下步骤修改并保存route6-eth0
文件。
执行如下命令,打开或创建/etc/sysconfig/network-scripts/
文件夹下的route6-eth0
文件。
vim /etc/sysconfig/network-scripts/route6-eth0
按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
default dev eth0 via fe80::feee:ffff:feff:ffff
按 “Esc”,输入 “:wq”,保存文件并返回。
重启云服务器,若仅通过 service network restart
,IPv6 无法正常加载。
执行如下命令查看重启后 IPv6 是否已经正常加载。
sysctl -a | grep ipv6 | grep disable
若出现以下报文说明 IPv6 已经正常加载。
依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig
说明:如果 dhclient 获取地址失败,检查 cvm 内的防火墙/ip6tables 是否允许了 udp 546和547端口的 dhcp 协议报文。
若出现以下报文说明成功获取 IPv6 地址。
请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
inet6
相关内容,表示实例已成功开启 IPv6 功能支持,您可以跳至 第6步 继续操作。执行以下步骤修改并保存sysctl.conf
文件。
执行如下命令,打开etc
文件夹下的sysctl.conf
文件。
vim /etc/sysctl.conf
按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
按 “Esc”,输入 “:wq”,保存文件并返回。
执行如下命令,对参数进行加载。
sysctl -p
执行如下命令,查看是否修改成功。
sysctl -a | grep ipv6 | grep disable
显示结果如下,则已成功修改。
执行以下步骤修改并保存ifcfg-eth0
文件。
执行如下命令,打开/etc/sysconfig/network-scripts/
文件夹下的ifcfg-eth0
文件。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
按 “i” 切换至编辑模式,增加如下内容。
DHCPV6C=yes
按 “Esc”,输入 “:wq”,保存文件并返回。
执行以下步骤修改并保存route6-eth0
文件。
执行如下命令,打开/etc/sysconfig/network-scripts/
文件夹下的route6-eth0
文件。
vim /etc/sysconfig/network-scripts/route6-eth0
按 “i” 切换至编辑模式,增加如下内容,为网卡的 IPv6 添加默认出口。
default dev eth0 via fe80::feee:ffff:feff:ffff
按 “Esc”,输入 “:wq”,保存文件并返回。
执行如下命令,重新启动网卡。
service network restart
或者
systemctl restart network
依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig
说明:如果 dhclient 获取地址失败,检查 cvm 内的防火墙/ip6tables 是否允许了 udp 546和547端口的 dhcp 协议报文。
若出现以下报文表示已成功获取到 IPv6 地址。
请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
inet6
相关内容,表示实例已成功开启 IPv6 功能支持,您可以跳至 第5步 继续操作。执行以下步骤修改并保存sysctl.conf
文件。
执行如下命令,打开etc
文件夹下的sysctl.conf
。
vim /etc/sysctl.conf
按 “i” 切换至编辑模式,将如下的 IPv6 相关参数设置为0。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
按 “Esc”,输入 “:wq”,保存文件并返回。
执行如下命令,对参数进行加载。
sysctl -p
依次执行如下命令,查看是否已经获取到 IPv6 地址。
# 若云服务器有多个网卡,请执行 dhclient -6 网卡名称,如 dhclient -6 eth0
dhclient -6 或 dhclient -6 网卡名称
ifconfig
若出现以下保存证明成功获取 IPv6 地址。
说明:如果 dhclient 获取地址失败,检查 cvm 内的防火墙/ip6tables 是否允许了 udp 546和547端口的 dhcp 协议报文。
Debian 8.2 系统默认为 ssh(22端口)开启 IPv6 监听,无需特殊配置,您可执行如下命令,进行查看。
netstat -tupln
执行如下命令,配置默认路由。
ip -6 route add default dev eth0 via fe80::feee:ffff:feff:ffff
请参考 SSH 支持 IPv6 配置 为 SSH 开启 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
inet6
相关内容,表示实例已成功开启 IPv6 功能支持,您可以跳至 第5步 或 第6步 继续操作。运行如下命令,并做相应修改,开启 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
运行sysctl -p
使配置生效。
如果镜像类型为 Ubuntu 14/Ubuntu16,请执行如下操作配置 IPv6。
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网关>
service network restart
或 systemctl restart networking
。如果镜像类型为 Ubuntu 18,请执行如下操作配置 IPv6。
编辑网卡配置文件。
vi /etc/netplan/50-cloud-init.yaml
添加 IPv6 地址和网关配置。
注意:只添加 addresses 和 gateway6。
network:
version: 2
ethernets:
eth0:
dhcp4: true //开启dhcp4
match:
macaddress: 52:54:00:75:ce:c2 //MAC地址
set-name: eth0 //网卡名
addresses:
- 2a00:7b80:454:2000::xxx/64 //设置IPv6地址和掩码
gateway6: 2a00:7b80:454::1 //设置IPv6网关地址
执行如下命令,使配置生效。
netplan apply
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
执行如下命令,检查实例是否已开启 IPv6 功能支持。
ip addr | grep inet6
或者
ifconfig | grep inet6
inet6
相关内容,表示实例已成功开启 IPv6 功能支持,您可以跳至 第4步 继续操作。运行如下命令,并做相应修改,开启 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
运行sysctl -p
使配置生效。
配置 IPv6,OpenSUSE 42镜像类型的云服务器 IPv6 操作步骤有 脚本方式 和 手动方式 。请根据实际情况选择配置方式。
脚本方式
将如下脚本拷贝到 shell 文件中,这里以 test.sh 为例。
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" >> /etc/sysconfig/network/routes
service network restart
执行脚本,举例如下。
./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64
手动方式
运行如下脚本,打开网卡配置文件。
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=<子网前缀长度>
运行vi /etc/sysconfig/network/routes
打开路由配置文件,添加配置项。
default <IPv6网关> - -
重启网络服务:运行service network restart
或systemctl restart networking
。
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
运行如下命令,并做相应修改,开启 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
运行sysctl -p
使配置生效。
配置 IPv6,SUSE 10镜像类型的云服务器 IPv6 操作步骤有 脚本方式 和 手动方式。请根据实际情况选择配置方式。
脚本方式
将如下脚本拷贝到 shell 文件中,这里以 test.sh 为例。
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" >> /etc/sysconfig/network/routes
service network restart
执行脚本,举例如下。
./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64
手动方式
运行如下脚本,打开网卡配置文件。
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=<子网前缀长度>
运行vi /etc/sysconfig/network/routes
打开路由配置文件,添加配置项。
default <IPv6网关> - -
重启网络服务:运行service network restart
或systemctl restart networking
。
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
FreeBSD 11 配置 IPv6 有 脚本方式 和 手动方式,请根据实际情况选择配置方式。
注意:脚本方式配置会重启网络,请谨慎执行。
key_value_editer()
{
local file=$1
local key=$2
local value=$3
[ ! -f "$file" ] && return
if ! grep -i "^${key}[[:space:]]*=" "$file" &>/dev/null; then
echo "$key=$value" >> "$file"
else
value=${value//\//\\/}
sed -i "s/^${key}[[:space:]]*=.*/$key=$value/" "$file"
fi
}
dev=$1
ipv6=$2
prefix_len=$3
rc_conf_file="/etc/rc.conf"
if [ ! -f "$rc_conf_file" ]; then
exit 1
fi
# enable ipv6
sed -i -e "s/ipv6_network_interfaces='none'//" $rc_conf_file
sed -i -e "s/ipv6_activate_all_interfaces='NO'//" $rc_conf_file
key_value_editer "$rc_conf_file" "ipv6_activate_all_interfaces" "'YES'"
tail="_ipv6"
# config ipv6 address
echo "ifconfig_$dev$tail='inet6 $ipv6 prefixlen $prefix_len'" >> /etc/rc.conf
# config ipv6 defaultrouter
netip=$(echo $ipv6 | awk -F":" '{print $1":"$2":"$3":"$4}')
echo "ipv6_defaultrouter='$netip::1'" >> /etc/rc.conf
/etc/netstart restart
执行脚本,举例如下。
sh ./test.sh vtnet0 2402:4e00:1000:4200:0:8f0c:d527:b985 64
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
远程连接实例,具体操作请参见 登录及远程连接。
运行vi /etc/rc.conf
命令。
删除ipv6_network_interfaces='none'
,并修改ipv6_activate_all_interfaces='NO'
为ipv6_activate_all_interfaces='YES'
后保存退出。
运行/etc/netstart restart
重启网络。
运行vi /etc/rc.conf
打开网卡配置文件,vtnet0
为网卡标识符,您需要修改成实际的标识符。在文件中根据实际信息添加以下配置:
说明:为区分单个 IPv6 与多个 IPv6 地址,您只需在同一网卡标识符的基础上重复添加地址信息即可。
单 IPv6 地址:
ipv6_ifconfig_vtnet0="<IPv6地址>"
ipv6_defaultrouter="<IPv6网关>"
多 IPv6 地址:
ipv6_ifconfig_vtnet0="<IPv6地址1>"
ipv6_ifconfig_vtnet0="<IPv6地址2>"
ipv6_defaultrouter="<IPv6网关>"
运行 /etc/netstart restart
重启网络服务,使配置生效。
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
注意:如果需要使用 IPv6 地址远程连接,则需要开启 ssh 的 IPv6 支持。
执行如下命令,打开 /etc/ssh/
文件夹下的sshd_config
文件。
vim /etc/ssh/sshd_config
按 “i” 切换至编辑模式,删除对AddressFamily any
的注释(即删除前面的#
),为 ssh 等应用程序开启 IPv6 监听。
按 “Esc”,输入 “:wq”,保存文件并返回。
执行如下命令,重新加载配置。
service sshd reload
执行netstat -tupln
命令,若出现以下报文,表示查 ssh 已成功监听 IPv6。
近年来,伴随着人工智能、物联网、云计算等的不断发展,作为基础食粮的大数据也...
公司简介 作为一家以“智慧企业”战略驱动的体验公司,SAP是全球领先的企业应用...
操作场景 本文介绍如何使用命令行 TCCLI 来创建计算环境、向计算环境提交作业、...
如果说互联网行业是男程序员的天下,这一定是当今社会中的偏见了。女性力量已经...
什么是服务器?网站服务器是什么意思? 提到 服务器 对于搭建过网站的站长来说一定...
每个服务商所运营的机房不一样,包括服务器的配置、线路也不一样。所以是无法直...
概述 云手机服务器提供软件定义手机的能力,模拟真机的传感器、网络等关键软/硬...
镜像 E-HPC支持使用公共镜像、自定义镜像、共享镜像来创建集群,选中一种镜像之...
1.再不疯狂我们就老了,再不复习月考就完了。 2.某同学上课手机突然响了,让我...
怎样将文件上传到云服务器? 本地Windows主机通过MSTSC上传文件到Windows云服务...