点击领取2000元阿里云代金券,付款抵现金用,云服务器69元/年限时抢>>> 点击咨询成为阿里云VIP客户享永久折扣>>>
点击领取2860元腾讯云代金券,付款抵现金用,云服务器88元/年限时抢>>> 点击成为腾讯云VIP客户享永久折扣优惠>>> 点击进入华为云最新优惠活动现场>>> 点击成为华为云VIP客户享永久折扣优惠>>>
Linux 云服务器配置 IPv6 有两种方式:工具配置 和 手动配置。请根据您的实际情况选择对应的方式,推荐您使用更高效的自动配置工具配置 IPv6 地址。
工具配置enable_ipv6 工具配enable_ipv6 工具可以为已分配 IPv6 地址的 CVM 实例,一键配置 IPv6 地址。
使用限制
- enable_ipv6 工具仅适用于 VPC 网络环境下。
- enable_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 工具配置config_ipv6 工具可以为已开启 IPv6 且已分配 IPv6 地址的 CVM 实例,一键配置 IPv6 地址。
使用限制
- config_ipv6 工具仅适用于 VPC 网络环境下。
- config_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对于需要自动化配置 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
手动配置
CentOS 6.8 配置 IPv6
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
- 若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。
- 若返回
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 功能。
CentOS 7.3/CentOS 7.5/CentOS 7.6 配置 IPv6
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
- 若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。
- 若返回
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 功能。
Debian 8.2 配置 IPv6
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
- 若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。
- 若返回
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 功能。
Ubuntu 14/Ubuntu 16/Ubuntu 18 配置 IPv6
远程连接实例,具体操作请参见 登录及远程连接。
检查实例是否已开启 IPv6 功能支持,执行如下命令:
ip addr | grep inet6
或者
ifconfig | grep inet6
- 若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。
- 若返回
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 功能。
OpenSUSE 42 配置 IPv6
远程连接实例,具体操作请参见 登录及远程连接。
执行如下命令,检查实例是否已开启 IPv6 功能支持。
ip addr | grep inet6
或者
ifconfig | grep inet6
- 若实例未开启 IPv6 功能支持,请根据下文继续开启 IPv6 功能支持。
- 若返回
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 为例。
执行脚本,举例如下。
./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64
手动方式
运行如下脚本,打开网卡配置文件。
vi /etc/sysconfig/network/ifcfg-eth0
eth0 为网卡标识符,您需要修改成实际的标识符。在文件中根据实际信息添加以下配置:
运行vi /etc/sysconfig/network/routes 打开路由配置文件,添加配置项。
default <IPv6网关> - -
重启网络服务:运行service network restart 或systemctl restart networking 。
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
SUSE 10 配置 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 为例。
执行脚本,举例如下。
./test.sh eth0 0 2402:4e00:1000:4200:0:8f0c:d527:b985 64
手动方式
运行如下脚本,打开网卡配置文件。
vi /etc/sysconfig/network/ifcfg-eth0
eth0 为网卡标识符,您需要修改成实际的标识符。在文件中根据实际信息添加以下配置:
运行vi /etc/sysconfig/network/routes 打开路由配置文件,添加配置项。
default <IPv6网关> - -
重启网络服务:运行service network restart 或systemctl restart networking 。
请参考 SSH 支持 IPv6 配置 开启 SSH 的 IPv6 功能。
FreeBSD 11 配置 IPv6FreeBSD 11 配置 IPv6 有 脚本方式 和 手动方式,请根据实际情况选择配置方式。
脚本方式
注意:
脚本方式配置会重启网络,请谨慎执行。
- 远程连接实例,具体操作请参见 登录及远程连接。
- 将如下脚本拷贝到 shell 文件中,这里以“test.sh”为例。
执行脚本,举例如下。
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 地址,您只需在同一网卡标识符的基础上重复添加地址信息即可。
运行 /etc/netstart restart 重启网络服务,使配置生效。
请参考 SSH 支持 IPv6 配置 开启 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。
|