十分钟没新帖了,论坛真的过气了(bushi
如果我以后搭博客了,可能会把这篇文章完善下发过去,所以转载请注明来源,本贴或者未来的博客都行。
不过就以我的讲话水平,估计难以说清楚吧。
你是否发现,VPS拥有数以万计的IPv6,平时却只能用那个以::1结尾的上网?这是否有些浪费?
这次,我们把它们利用起来,远程分配给不支持v6的设备,让它们也能被全球访问。
论坛老咸鱼应该对我挺眼熟的,事实上,我一直都很喜欢拥抱这些新技术。
需要:
支持v4的服务器,如果你要用Tunnelbroker,则要求v4必须是静态公网IP。
如果服务器支持v6且可以继续分配(夏树下述)的话,可以不用HE的tunnelbroker;
Zerotier(软件)
服务器和本地电脑之间,通过v4通信,服务器同时为客户端提供v6地址,接入v6网络和分配全球可达的公网IPv6。
服务器/客户端都可以配置防火墙,设置成只许出不许进也行,看你们的了。
如果服务器拥有公网IPv4,那么它就是一个自建的IPv6隧道,至于如何连接服务器,这就是各位的事情了,我相信各位最擅长的就是这个:)
首先,通过SSH连接VPS,输入如下命令:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf #开启v4的转发,备用,不需要可以#掉。
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.forwarding = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.autoconf = 0" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.autoconf = 0" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra = 0" >> /etc/sysctl.conf
#vps接受路由通告,充当路由器,转发数据包
sysctl -p
好极了,此时你的VPS会像路由器一样,转发“源地址和目标地址都不是它本身”的数据包。在默认情况下,它是会丢弃那些包的。
然后登入你的VPS供应商后台,先看看它给的v6前缀(子网)可否被路由?
找一个有IPv6的环境去路由跟踪这个网段内部的地址,看看是否会经过VPS/网关?没有的话就说明这个段没被母鸡路由,需要安装ndppd并且进行广播。
这个以后单独开贴说。
>ip -6 route add local 2001:db8:ffff:340::/64 dev lo
#让VPS认为这段IP全部都属于自身lo网卡,此时你PING该段内任意一个IP,都会被VPS应答,如果没有,就说明不可继续分配了。
绿云的/112,Hax的/112(不确定的内容),Virtono的/64和Cloudcone的三个/128都是不可继续分配的。
HE的Tunnelbroker是可以继续分配的,有些VPS厂商应该也支持,但是我没试过,如果有大佬赏我一台V6小鸡的root测试下就好了。
这里假设你的服务器的v6已经工作正常。
我实在是找不到支持分配前缀的商家,以下用的是HE的Tunnelbroker。我就不演示如何接入HE了。不明白的话请点击这里
转发正常的话,安装Zerotier,或者是其他VPN软件也行,但是DHCP需要你自己设置,ZT可以在管理面板分配IP,简单粗暴。
curl -s https://install.zerotier.com | sudo bash
如果报错,说明系统太精简,需要安装curl和sudo
apt update
apt install curl sudo
等待ZT安装成功,去官网注册账号,创建网络,记下16位网络号,输入
zerotier-cli join <你的16位ZT网络号> #加入网络
zerotier-cli set <你的16位ZT网络号> allowDefault=1 #允许覆写默认路由
zerotier-cli set <你的16位ZT网络号> allowGlobal=1 #允许全球IP地址转发
客户端也安装Zerotier并操作。
好极了,然后在Zerotier的后台为每个设备分配地址,允许访问权限(Auth栏打勾),例如你的IPv6静态前缀是2001:db8:0:0::/64的话,
接入HE隧道的VPS作为网关,地址分配 2001:db8:0:0:5161:79ff:fe6f:7269
Windows作为客户端,地址分配 2001:db8:0:0:18f7:d07:905e:69f2
在ZT的Managed Routes中,设置路由:
::/0 经由 2001:db8:0:0:5161:79ff:fe6f:7269
2001:db8:0:0::/64 经由 (不填写,直接提交,显示为经由LAN)
提醒下,2001:db8只能出现在文档中,它不能上网,这里只是示例。
:5161:79ff:fe6f:7269是单词“Sayori(纱世里)”转换成ASCII再按照MAC地址格式转换成EUI-64的IPv6。Windows客户端的v6是脸滚键盘按出来的,无特殊含义。
此时Windows和VPS都获得了IPv6地址,互相PING一下能不能通:
勾选Zerotier客户端的allowGlobal,allowDefault,和allowManaged(默认勾选)
此时路由跟踪一下2606:4700:4700::1111
再打开https://ipv6-test.com/
外网路由跟踪一下:
延迟高的不像话,毕竟是UDP+晚高峰。优化线路白天效果更好些。
然后开启你的加密DNS,访问ipv6.google.com成功打开!
因为6in4 Tunnelbroker无加密,而访问谷歌这一步已经是VPS和HE服务器之间的事情了,VPS到本地电脑是Zerotier加密的UDP包。办公电脑等不方便装某射线的时候,可以顺便用这种方法出去,只是底层是UDP的,电信可能卡得没法子正常用。
联通,下午速度测试(数据有轻微浮动,IP地址是假的):
欢迎步入互联网世界的未来!
如果帮到了您,欢迎给我加鸡腿,我会开心很久的,诶嘿嘿~
我直接手撸
ip route add blackhole 2001:470:****::/48
然后目标是固定IP的话
ip tunnel add abc mode sit remote x.x.x.x local x.x.x.x
ip link set abc up
ip route add 2001:470:****:1000::/52 dev abc
一个/52的段给分出去,当然也可以分更小的,客户端自己玩去
或者放一个istap
ip tunnel add abc mode isatap remote any local x.x.x.x
ip link set abc up
ip addr add 2001:470:****:1002::1/64 dev abc
客户端的事情就自行解决
就是这两种方式传输层的协议号都是41,不是普通的TCP/UDP,NAT下可能不太好用
楼主的那个没玩过,不知道是不是也是41传输的
好贴,Zerotier是一直想去摸的一个东西
鸡腿已投喂
好贴,但是看不懂。期待一键脚本
看不懂,但我知道很nb
技术贴 狠狠的顶!
牛的
技术贴,鸡腿必须给
mark
问题是数据还是要通过vps转发吗? 这有啥意义呢,跟端口转发好像没啥区别
@seesee #8
端口转发是IPv4时代遗留的东西,这样一折腾,每台接入Zerotier的设备都是公网IP,网关也不用浪费性能去跟踪哪条链接是谁发起的,闭着眼睛转发就行了,过墙只是个副作用。
单纯的把HE隧道和本地路由器连接的话,要求家宽是公网,还有ddns问题,而且跨墙不加密,随便玩玩就阻断了。
因为我发现很多人还是很抵触IPv6,但是它现在已经很完善了。VPS厂商如果给一大把v6,很多人只用一个,甚至完全禁用。都不积极推行新协议,再过一百年,v6也取代不了v4。
我觉得未来v4有可能彻底退网,只供个人、公司之间的内网使用,公网上都是v6单栈也说不定。
好诗,先收藏了