一台ipv4 only,一台ipv6 only,一台双栈,没v6或v4的机器,路由走双栈服务器,效果如下
双栈:

v4 only

v6 only

启动脚本

有空还得写个程序自动下发对端ip和内网ip,不然每台服务器都要改下脚本实在太蠢了
一台ipv4 only,一台ipv6 only,一台双栈,没v6或v4的机器,路由走双栈服务器,效果如下
双栈:

v4 only

v6 only

启动脚本

有空还得写个程序自动下发对端ip和内网ip,不然每台服务器都要改下脚本实在太蠢了
没注释,不知道怎么修改才能适配自己的服务器啊,大佬能写写代码的注释吗
代码呢
前排蹲坑,看且看楼主造化
good!

插眼
发帖只是提供一种思路,抛砖引玉,并不是面向小白用户的教程。
如果对 iproute2 和 iptables 没有基本的了解,写了注释也看不懂。
其实原理很简单,两台服务器之间通过支持 6in4 或 4in6 的隧道连接,我这里用的 geneve。然后修改v4或v6的默认路由到双栈服务器,再用 iptables 实现 nat。
因为每台服务器上不止有一条隧道,通过网桥把所有隧道桥接在一起,这样就不用给每条隧道都指定 ip 了。如果是更加复杂的 mesh 网络,还要加入 STP 以避免广播风暴。
小白用 tailscale 更省事,他们的中转(derp)服务器都是双栈,只不过限速,当然也可以搭建自己的 derp 服务器就没有限速的问题了。
我不用这个方案是因为基于 wireguard 的工具在低配置机器上 CPU 占用过高,带宽损失差不多一半。
一眼看到iptables就先放弃了,这玩意儿在我学明白前我还是不瞎折腾了,折腾出事了,就不好玩了

@RyanShang #7 我折腾的时候也没少断网,进vnc改下不就完了
@Jat #8 准备啥时候有整块时间了,专门开个vultr的机子玩玩这个,搞坏了连不上直接删鸡,vultr上刚好还有几刀。

多少有点过分了,不面向小白应该也不会不懂