Repository navigation
Tailscale Root v0.6.3
KernelSU / Magisk / APatch 模块:把 tailscaled 以 root 守护进程方式常驻运行在 Android 上,并内置 WebUI 管理。
本版亮点
- 子网重叠自动避让:对端 advertise 的网段(如
192.168.4.0/24)与本机当前所在局域网重叠时,自动--accept-routes=false,本地路由器 / NAS / 打印机恢复直连;离开该网段后自动恢复。按 CIDR 位比较而非字符串近似,只撤销自己做的切换(标记文件.accept_routes_auto)。设置页可单独关闭(TS_ROUTE_GUARD=0)。 - 标签页切回时自动刷新数据。
修复
- 真实 DNS 被公共 DNS 覆盖:
update_resolv.sh --quick在网络未变化、net.dns*为空时会落到223.5.5.5兜底并写文件,把全量探测拿到的真实上游(如路由器192.168.4.21)在 5 分钟内覆盖掉。现在按默认路由指纹(table/dev/gateway)判断,网络没变就保持现状,只有换网才重新探测。 - 静默级别不静默:
TS_LOGLEVEL=quiet只关闭了--verbose,tailscaled 仍在写日志。现在守护进程输出丢弃到/dev/null,启动快照与定时网络快照也不再采集(状态页「抓取」仍可手动采集)。 - 日志页清空无效:原来只清空前端数组,跟随刷新后立刻回填。现在真正截断文件;用 truncate 而非
rm,因为守护进程持有该 fd,删除后它会继续写已删除的 inode,日志页再也读不到。 tailscaled.log无上限:原来只在守护进程启动时检查 2 MB。现在看门狗每 5 分钟检查一次,并用 copytruncate 滚动(mv会让运行中的进程继续写改名后的文件)。- 安装页看不出「离线包不可用」的原因:「内置版本」改名为「离线包」,不可用时直接说明原因(当前安装包不含二进制 / 包内文件不完整 / 架构未知);在线安装完成后会重新读取状态,并提示离线包未被更新——在线安装只写
/data/adb/tailscale/bin/,之前那一行永远不变,看起来像安装失败。 - 保存设置后立即按新配置重写
resolv.conf,清空TS_DNS不再残留旧值。
改进
- 暗色主题下开关增加描边,未选中状态也能看清(
light-dark()跟随主题的color-scheme)。 - 移除状态页两个手动「修复」按钮(网络路由 /
src_valid_mark):看门狗已自动覆盖,手动入口只是重复劳动,且src_valid_mark是全局内核参数、误点影响面更大。 - 看门狗周期 15s → 30s,每轮 fork 的进程数减半(实测 CPU 0.20% → 0.10%),健康检查只取自身状态(
--peers=false)。
升级
覆盖安装即可,/data/adb/tailscale/env 配置与已注册状态保留。
提醒:
TS_WAKELOCK=1(默认)会持有内核唤醒锁,熄屏期间保持数据面可用,代价是待机耗电上升。介意续航可在设置页关掉「唤醒锁」,代价是熄屏后连接会停摆。