虽然现在绝大部分小鸡都已经是KVM了,套个6to4隧道分分钟的事情。但还是有部分NAT鸡采用老旧的OpenVZ或者LXC作为架构。因为内核版本以及一大堆各种原因(此处省略数万字),OpenVZ和LXC需要userspace的tun实现6to4隧道。
以Debian 12为例,步骤如下。
0- 小鸡需要开启TUN/TAP,可以在VPS面板开启或者联系客服开启。
1- 下载个tb-tun的源代码(us-tun也可以,功能更强但用不到),项目地址https://github.com/acgrid/tb-tun
,源自https://code.google.com/archive/p/tb-tun/
2- 下载后解压什么的就不详述了。apt-get -y install gcc
安装gcc。
3- 进解压后的目录,编译一下十几年前的代码。gcc tb_userspace.c -l pthread -o tb_userspace
4- 把变成好的可执行文件tb_userspace丢到一个目录,比如/usr/bin/
5- 如果你没有各种6to4隧道的账号,就去申请一个,这里以乌克兰的netassist为例https://tb.netassist.ua/
6- tb_userspace的用法是,执行 tb_userspace 网卡名字 远程6to4服务器IPV4 本地IPV4(可能是局域网地址) 模块名。所以我们需要执行的是 tb_userspace ipv6 11.22.33.44 10.0.0.5 sit &
启用sit模块。
7- 启用这块名叫ipv6的网卡。ip link set ipv6 up
8- 添加IPv6地址。netassist提供的是/48的IPv6,所以,ip addr add 2a01:d0:aaaa::2/48 dev ipv6
9- 修改IPv6路由,如果之前有小鸡再带的IPv6,先删除原有IPv6路由。比如ip -6 route del ::/0 dev venet0
。其中venet0是原有的网卡名称,OpenVZ通常用这一类的网卡名字。然后添加新的路由走ipv6这块网卡。ip -6 route add ::/0 dev ipv6
10- 然后就完成了,curl -6 ip.sb
看看是否输出的是你的新IPv6。
总结一下,用处就是没啥卵用。可以给没有IPv6的OpenVZ小鸡添加IPv6,进而朝小鸡点亮全球跨出一大步。
哦忘记了还没写完。
如果需要开机自动设置的话,可以新建一个systemd启动文件,取个名字比如叫tb,放在/etc/systemd/system/下面。
内容如下:
[Unit]
Description=User Space Tunnel Broker
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/tb_userspace ipv6 11.22.33.44 10.0.0.5 sit
ExecStartPost=/bin/sleep 3s
ExecStartPost=/bin/ip link set ipv6 up mtu 1480
ExecStartPost=/bin/ip -6 addr add 2a01:d0:aaaa::2 dev ipv6
ExecStartPost=/bin/ip -6 route add ::/0 dev ipv6
ExecStopPost=/bin/ip -6 route del ::/0 dev ipv6
ExecStopPost=/bin/ip -6 addr del 2a01:d0:aaaa::2 dev ipv6
ExecStopPost=/bin/ip link del ipv6
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl enable tb
就可以自动启动了。