使用ZeroTier让没有公网IP的自己也能使用IPV6

使用ZeroTier让没有公网IP的自己也能使用IPV6 – 爱喝茶的康康

前言

对于IPV6来说,广大的网友们应该不再陌生了吧?

虽然一直在说着要支持IPV6,一直在说着推广IPV6使用,可真正是否可以了呢?答案是很多地方依然是不行的!

比如康康所在的地方,一个三线小城市,仅有手机4G网络支持了IPV6,但大移动的大内网是没有IPV6支持的,好羡慕那些能够支持IPV6的网友啊!好羡慕那些有公网IP地址的网友啊!

对于有公网IPV4地址的网友,可以使用Tunnel来进行IPV6使用,可对于咱们这种移动大内网的玩家来说,一切依然是遥不可及的梦想!

不过还好,刚看到一篇文章,提到了一种方法,能够让内网用户也能使用IPV6,康康简直不要太开心啊,赶紧测试了下,果然可以,本文就将此方法分享出来。

参考文章:https://moe.best/tutorial/zerotier-ipv6.html

准备工作

要使用IPV6,咱们得先准备一些东西,内容如下:

  1. 一台拥有IPV4公网、IPV6/48地址块的VPS,这里康康选择了Linode
  2. 一个Tunnel帐号
  3. 一个Zerotier帐号

当我们准备完成后,即可开始下面的操作步骤,不过在操作之前,咱们先确定下自己准备的内容。

VPS的IPV4地址,康康假设为:123.231.33.4,IPV6地址假设为:1111:1111::1111:1111:1111:1111/64,其他的就是帐号,这个自己确定,记住上面的两个IP地址,待会儿要用到!

系统修改

使用SSH登录VPS,并修改sysctl,也就是在/etc/sysctl.conf中加入或替换如下内容:

net.ipv4.conf.all.forwarding = 1  net.ipv6.conf.all.disable_ipv6 = 0  net.ipv6.conf.default.disable_ipv6 = 0  net.ipv6.conf.lo.disable_ipv6 = 0  net.ipv6.conf.default.forwarding = 1  net.ipv6.conf.all.forwarding = 1  net.ipv6.conf.all.proxy_ndp = 1  net.ipv6.conf.all.accept_ra = 2

完成后执行生效:sysctl -p

Tunnel隧道申请

使用注册到的帐号登录Tunnel,在左侧User Functions下面找到Create Regular Tunnel并点击,在右侧IPv4 Endpoint中填入VPS的IPV4地址:

01.png

这里注意,如果地址有问题,Tunnel会给出提示,并根据提示进行验证:

02.png

在下方选择隧道的区域,一般选择就近原则,也就是与VPS所在区域相近的地区,比如康康的VPS是日本的,就可以选择香港、日本等。

03.png

填写完成后点击下方的Create Tunnel按钮创建隧道,可能稍微有点慢,耐心等待即可,创建完成后会给出隧道信息:

04.png

咱们无需理会其他内容,找到Routed IPv6 Prefixes区块内的Routed /48:,并点击右侧的Assign /48链接,会创建一个IPV6地址块。

05.png

06.png

记住这个地址块,后面要用到。

点击上方的Example Configurations按钮,并选择自己VPS所对应的操作系统。

07.png

如果是 Debian 或者 Ubuntu 就直接将展示的配置内容追加到/etc/network/interfaces文件中,然后执行/etc/init.d/networking restart重载网络配置
如果是 CentOS,选择”Linux-route2“,直接执行配置中的命令,不过需要注意的是执行命令所建立的隧道是临时的,你可能需要把这些命令也添加到/etc/rc.local中

完成后可执行ipconfigip addr命令,可看到有一条he-ipv6的记录,证明已经执行成功。

ZeroTier操作

在VPS中安装ZeroTier。

curl -s https://install.zerotier.com/ | sudo bash

这时会给出一个10位数的ZeroTier地址ID,记录下来。

08.png

登录ZeroTier,找到Networks,并点击Create a Network按钮:

09.png

创建后,在界面中会出现一个网络ID,点击网络ID进入配置界面。

10.png

找到Advanced下的IPv6 Auto-Assign,勾选ZeroTier RFC4193,取消ZeroTier 6PLANE

11.png

找到Members下的Manually Add Member,将刚才安装时生成的10位数的ZeroTier地址ID填入,并点击+ Add New Member按钮。

12.png

此时,自己的VPS已经加入了网络中,咱们记录下给出的IPV6地址,这里是:fd15:9924:d630:a536:4e99:9389:b3f0:7586

13.png

回到VPS中,执行命令:

zerotier-cli set <NetworkID> allowGlobal=true

其中的NetworkID可以在刚才创建的网络中看到。

14.png

接着回到ZeroTier中,找到Settings下的Advanced中的Add RoutesDestination填写Tunnel获取到的/48的IPV6地址,比如康康获取到的是2001:470:fa89::/48(Via)留空,并点下面的Submit按钮提交。

15.png

提交后会在上方的Managed Routes中显示。

16.png

以同样的方法再添加一条路由,Destination填写::0/0(Via)填写刚才ZeroTier给的IPV6地址。

17.png

18.png

接下来,找到Settings下的Advanced中的IPv6 Auto-Assign,勾选Auto-Assign from Range,并填写记录。

19.png

其中Range Start填写Tunnel给出的/48地址块,不过是去掉/48,比如康康的是2001:470:fa89::,而Range End则是该地址块的末尾,也就是2001:470:fa89:ffff:ffff:ffff:ffff:ffff

20.png

21.png

OK,至此ZeroTier的网页操作也完成了,最后咱们就只需要接入网络即可。

客户端操作

客户端操作,也就是自己的电脑端操作,目前大部分网友使用的是Windows系统,而康康使用的是Linux系统,所以呢,Windows系统康康就无法演示,只能转载下原文的说明。

Windows操作

前往 http://www.zerotier.com/download.shtml 下载客户端,安装

首次运行会让你登录 ZeroTier,登陆完后应该会自动帮你加入你在前面建立的那个虚拟局域网(Win10会提示发现新网络之类的),然后右击托盘图标,Show Networks,将Allow Global IPAllow Managed IPAllow Default Route这三个全部打勾

如果Show Networks中什么也没有,就右击托盘图标退出程序,再重开一次,这是 ZeroTier Windows 客户端的问题,重启才会更新网络信息

如果没有自动加入,就右击托盘图标,Join Network,输入框中填写③,并打勾所有勾,然后Join

接着我们需要设置 IPv6 DNS,打开 控制面板->所有控制面板项->网络和共享中心,点击ZeroTier One [xxxxxxx]的连接,属性,Internet 协议版本 6,设置 DNS 为谷歌 IPv6 DNS2001:4860:4860::8888和2001:4860:4860::8844,一路确定保存

尝试在命令提示符中ping -6 google.com,Ping 通就说明成功接入 IPv6 了。

Linux操作

执行命令安装ZeroTier,安装完成后同样会给出一个地址ID,无需理会:

安装完成后,执行命令:

zerotier-cli set <NetworkID> allowGlobal=true  zerotier-cli set <NetworkID> allowGlobal=true

同样的,NetworkID就是刚才在VPS中执行set命令时的那个NetworkID,这里要注意下,两条命令都需要root权限。