tailscale subnet 的问题

2025 年 6 月 9 日
 shakukansp

tailscale 运行在 nas 的 docker 里面,ip 是 192.168.1.122

配置了 TS_ROUTES=192.168.0.0/23

电脑上装了 tailscale 并且打开了 accept-routes

电脑连另一个不在同一个局域网的 wifi(192.168.50.2),此时访问 192.168.1.122 可以访问到 nas 的桌面,功能一切正常

访问和 nas 处于同一局域网内的中兴路由器 192.168.1.254 不行

docker 和宿主机 nas 按官方文档的教程配置 /etc/sysctl.conf 的 ip forward ,没用

问题出在哪?

2253 次点击
所在节点    NAS
12 条回复
bao3
2025 年 6 月 9 日
为什么要设置 192.168.0.0/23 ,是有什么特殊的架构的需求吗?
yeizhihui
2025 年 6 月 9 日
在路由器里写静态路由:192.168.1.0/24 网关写 192.168.50.0/24 网段网关 192.168.1.122 的静态路由;192.168.50.0/24 网关写 192.168.1.0/24 网段网关 192.168.50.2 的静态路由;tailscale 后台开启相应功能.话说我用的 headscale 做后台流程差不多.TS_ROUTES= 这个是通报本网段吧
chengyecc
2025 年 6 月 9 日
试试打开 tailscale 的 snat 选项
shakukansp
2025 年 6 月 9 日
我搜了半天,添加了一个神秘环境变量 TS_DEBUG_FIREWALL_MODE:auto

加上以后解决了……

由此可知大概是容器里面防火墙配置问题,但是还是没高清少弄了啥
shakukansp
2025 年 6 月 9 日
@bao3 搜了一堆问题,有几个提到同一个内网两个以上 tailscale 会有冲突,按照文档提示加上的,这里不太确定是不是指两个以上的 tailscale 有 advertise-routes
guanzhangzhang
2025 年 6 月 9 日
@shakukansp #4 首先,你的 ts 是否是 host 网络,是的话用 iptables 的 mode:legacy 和 nf_tables 优先级不一样
shakukansp
2025 年 6 月 9 日
@guanzhangzhang 是 host
guanzhangzhang
2025 年 6 月 9 日
wyxls
2025 年 6 月 9 日
我刚好也在研究这问题,现在通过 AI 和搜索引擎找了两个方案,假设子网 A 为 10.36.13.0/24 ,子网 B 为 192.168.31.0/24:
1. 在 tailscale 通过配置 ACL ,针对客户端分组 tag 之后,注释掉默认 accept all ,改为设备到子网的逐一维护允许,比如{"action": "accept", "src": ["tag:A-devices"], "dst": ["B-subnet:*"],}
2. 在 subnet router 那维护静态路由表,比如 B 网关配置 192.168.31.0/23 to 10.36.13.0/24 ,这样局域网内 IP 通过网关访问 B 网,B 网优先级会胜出
shakukansp
2025 年 6 月 9 日
@wyxls 我就是两路网……路由器也不是同一个,没有优先级问题
wyxls
2025 年 6 月 9 日
@shakukansp tailscale 的 admin console 里,192.168.0.0/23 这个路由表 approve 了没?
shakukansp
2025 年 6 月 9 日
@wyxls approve 了,目前加了 4 楼说的环境变量已经解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1137246

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX