Linux 云服务器配置 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。
之前介绍了java中另一个同步工具类CountDownLatch,这篇文章主要介绍CyclicBarri...
简介 memory-bound函数可以称为内存受限函数 它是指完成给定计算问题的时间主要...
很多同学创建一个项目之后,就迫不及待的上手开写了。项目代码不像一些框架代码...
您可以在用户中心查看弹性高性能计算相关的费用账单以及消费明细。 操作步骤 登...
网站搭建 使用轻量应用服务器 Lighthouse 提供的精品镜像(例如 WordPress、Disc...
前言 前两天刚买了个腾讯服务器(CVM),这次登陆上去的时候特别卡,通过top发现负...
近年来,随着工业互联网的快速发展,大数据、云计算、区块链、人工智能等新一代...
ListApps 描述 列举 App资源,支持公共 App 和私有 App。 请求语法 请求行: GET...
说明: GPU 云服务器作为 CVM 云服务器的一类特殊实例,购买、 操作、维护等方式...
数据湖的实现需要很多关键因素,其中涉及从技术到治理,组织需要评估其实施策略...