使用 HE 隧道给云服务器添加 ipv6 地址
共计 1701 个字符,预计需要花费 5 分钟才能阅读完成。
前言
由于购买的 ranknerd 的 vps 配置了 ipv6,本着能用 v6 不用 v4 的心态,想着以后 ssh 都用 v6。奈何公司和家里都没有 ipv6,于是想着能不能让云服务器当跳板机进行 ssh,然而轻量云服务器没有 ipv6,所以只能另寻他法。之前也看讲过给没有 ipv6 的云服务器配置 v6 相关的内容,但是不太记得了,后来经过询问得知是 HE 隧道。
测试是否有ipv6的网站:https://test-ipv6.com/
Hurricane Electric (简称:HE) 是一家位于美国的全球互联网服务提供商,该公司运营了世界上以对等数最大 IPv6 网络,同时也提供免费的 IPv6 隧道服务。隧道服务即允许 IPv6 流量通过 IPv4 网络传输的机制,基本原理是通过 IPv4 网络封装 IPv6 数据包,使其能够在 IPv4 网络中传输。在隧道的两端,有两个 IPv6 节点,它们之间通过 IPv4 网络进行通信。当 IPv6 数据包进入隧道时,它被封装在 IPv4 头部中,以便通过 IPv4 网络传输。在离开隧道时,IPv6 数据包被解封,还原为原始的 IPv6 数据包。
创建隧道
首先注册 Tunnel Broker 账号,注册的过程就不讲了,地址:https://www.tunnelbroker.net
然后点击如图所示内容:
/>
这里需要输入服务器的公网 ip 地址,另外,选择节点的时候一般选择比较适合自己的节点,比如香港、新加坡、日本等。创建好以后,点击隧道可以看见配置隧道的详细内容。
/>
可以看见创建的隧道客户端和服务端各自的 ipv4 和 ipv6 地址,待会配置的时候需要用到。
/>
到这里,隧道就创建好了。
服务器启用ipv6
修改 /etc/sysctl.conf
中ipv6的配置:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
确保上面的参数值为 0,0 代表启用,1 代表禁止使用 ipv6。
然后执行:
sysctl -p
配置ipv6隧道
这里 debian 系列和 centos 的配置不同。
1. debian配置v6
debian 系统包括 debian/ubuntu,都是使用如下配置。
sudo tee /etc/network/interfaces.d/he-ipv6 <<EOF
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 客户端ipv6
netmask 64
endpoint 服务端ipv4
local 客户端ipv4/内网ip
ttl 255
gateway 服务端ipv6
EOF
这里需要注意的是,local 可能需要配置为内网 ip,否则无法进行使用。
然后安装网络工具包,并启用隧道。
sudo apt update
sudo apt install net-tools iproute2 -y
sudo ifup he-ipv6
提示 ifup: unknown interface he-ipv6 ,则添加source /etc/network/interfaces.d/ 到 /etc/network/interfaces 文件(一把梭命令:echo 'source /etc/network/interfaces.d/' >> /etc/network/interfaces)后重试,正常情况下无输出。
重启网卡:
systemctl restart networking
测试 ipv6 是否配置好:
ping6 ipv6.baidu.com
2. centos配置v6
centos 运行如下命令创建一块新的网卡:
cat > /etc/sysconfig/network-scripts/ifcfg-he-ipv6 <<EOF
DEVICE=he-ipv6
BOOTPROTO=none
ONBOOT=yes
TYPE=sit
IPV6INIT=yes
IPV6TUNNELIPV4=服务端ipv4
IPV6ADDR=客户端ipv6
IPV6_MTU=1480
IPV6_DEFAULTGW=服务端ipv6
EOF
重启网卡:
systemctl restart network
测试 ipv6 是否配置好:
ping6 ipv6.baidu.com
提醒:本文发布于300天前,文中所关联的信息可能已发生改变,请知悉!
Tips:清朝云网络工作室