【热佬】抱大腿,玩转Tailscale的一个问题🐳

我是公司一台电脑,家里几台电脑都给装了Tailscale的客户端。其中家里的群晖设置了

sudo tailscale up --advertise-routes 192.168.8.0/23 --advertise-exit-node --reset

家里的网关是192.168.8.1

发现当我从家里A电脑访问家里的B电脑时,路由器有时候会死机,A ping不通网关了,感觉像是广播风暴还是网络回环的那种,我把A电脑disconnect就好了,但是A就访问不了公司电脑。
这个场景应该很常见吧,但是我没搜到相关的讨论,不知道有没有热佬了解应该怎么处理这个情况

2 个赞

帮顶

电脑a 和 电脑 b 都设置 取消勾选 use tailscale subnets

这是什么原理,对了中转机要不要也取消subnet
sudo tailscale up --advertise-routes 192.168.8.0/23 --advertise-exit-node --reset
就是这台电脑要不要加–accept-routes=false

中转机不需要加 accept-routes。

取消的原因是:a,b两台电脑自身和中转机即nas同处于一个网络了,所以不需要开启此功能开关

1 个赞

那如果说公司电脑也想暴露他那边的子网,
这种情况还能深化下去么?A,B关闭了接受通告应该就没法联系公司那边的子网了吧,
开启接受就又回环了

感谢热佬答疑解惑

一个不是很好的方案:将a,b的客户端离线
通过nas与另一个子网通信,需要手动加一条路由表。
参考:Site-to-site networking · Tailscale Docs

也许可以通过ACL屏蔽掉a,b对192.168.8.0/24的访问,这样应该可以实现a,b客户端共存于双子网

参考:Manage access · Tailscale Docs

1 个赞

配置调优快问快答

感谢提供的思路,已认可。

nas承担网关的作用是吧?

要不换成wg~ 可以看看我前不久写的wg哈哈~ (不用也行 水一下

1 个赞

谢谢你写的教程,不过tailscale低配置的方式对我来说减少很多心力负担。

这个倒是 要不是 ios surge 不支持 tailscale 我觉得 tailscale的方案也很不错

看到你的帖子解决了一半我的问题,因为我有两个子网,一个在家,一个在工作室,两边都公布了路由,但是出现的问题是子网内安装了tailscale的设备经常断联,B站上有人分析是tailscale默认路由优先级太高造成路由回环的问题。然后这个帖子里的解决方法是有效的,因为 --accept-routes 是接受节点公布路由,这就会使两个同处于一个内网内设备路由发生冲突。关闭转发节点后,该子网内安装了tailscale的其他设备可以正常访问别的子网,也保证了子网内的设备可以被外部访问。缺点几乎可以忽略不记,就是子网内没有搭tailscale的设备无法访问外部的子网。

在官方的1.66更新和reddit讨论中,有新的解决方案。
在出口节点/转发节点上添加参数

tailscale set --snat-subnet-routes=false --stateful-filtering=false

关闭源NAT可以解决冲突问题并保持 --accept-routes 接收路由功能。

但是我还是有疑问的点在于 passwall2,这个软件的DNS貌似会影响tailscale的DNS导致IPV6出问题,有无解决方案?

1 个赞

感谢你在解决问题后贴上方案。
–snat-subnet-routes=false
–stateful-filtering=false
这两个参数对我很陌生,能具体说一下各自的作用么,我在文档没有翻阅到

你说的DNS的问题我没有遇到,我这边的ipv6一切工作正常。
但是你要注意 Clash 会导致你无法正常访问ipv6,尝试关闭它

From 快问快答 to 开发调优

1 个赞