Repository navigation
Releases: RyanRaw/tailscale-root
Releases · RyanRaw/tailscale-root
Release list
Tailscale Root v0.6.5
本次更新
修复
- 守护进程卡死不再拖垮整个模块:
tailscale status/debug prefs等 localapi 调用全部加了超时(只读 8 秒,set --accept-routes12 秒,KSU 按钮轮询 4 秒)。此前 tailscaled 的控制面 long-poll 断开后 localapi 会整体卡住,update_desc/route_guard的 30 秒循环被永久钉死,还不断堆积挂死的 CLI 进程,最后 WebUI 也一起转圈。 - 清空控制服务器地址后,能真正切回官方登录服务器(此前只重启守护进程是不够的)。
- 控制服务器域名改走模块自己的 hosts 文件解析,并且只在默认路由变化时才重新解析。
新功能
- 安装页支持切换 / 删除外置二进制,可以扫描设备上的文件(下载目录、
/data/local/tmp等)自动填入路径。 - 登录链接改为用默认浏览器打开;有多个浏览器时以图标网格让你挑。
- 保存设置后立即重启守护进程,不再需要手动再重启一次。
- 状态 / 节点 / 安装 / 日志四个页面支持下拉刷新。
说明
- 主包内置 arm64 二进制(
tailscale/tailscaled/tsdns),可离线安装。 - 轻量包
tailscale_root-v0.6.5-nobin.zip不含二进制,适合已经有二进制的设备。
Tailscale Root v0.6.4
Fixes since v0.6.3
- Route guard: determine the uplink from the main routing table instead of
ip route get, which kept reporting a stale device after cellular handover. - WebUI: pages now share one status snapshot, so tabs no longer diverge or re-poll on their own.
Assets: tailscale_root-v0.6.4.zip (module + arm64 binaries) and tailscale_root-v0.6.4-nobin.zip (module only).
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(默认)会持有内核唤醒锁,熄屏期间保持数据面可用,代价是待机耗电上升。介意续航可在设置页关掉「唤醒锁」,代价是熄屏后连接会停摆。
v0.6.0-rc1 (temp build, no binaries)
v0.6.0-rc1 临时验证包(不含二进制)
这个包只含脚本与 WebUI(0.13 MB),可直接覆盖安装,内置的 tailscale 二进制沿用手机上已经部署的
/data/adb/tailscale/bin/,不会被删除或覆盖;安装页的「内置版本」此时会显示「不可用」,属正常现象。
本版新增
- 日志级别开关(设置页「日志级别」
TS_LOGLEVEL)- 静默 quiet:不自动采集快照
- 标准 normal:每 5 分钟写一条网络快照
- 调试 debug:tailscaled 追加
--verbose=2,网络快照每 60 秒一条
- 网络快照日志
log/net_probe.log:每次记录 route get(v4/v6)、全部默认路由、main 表、网卡 IPv4、
/etc/resolv.conf、net.dns1/2、守护进程 pid 与 BackendState、curl 直连 GitHub 与登录服务器的返回码/耗时、
tailscaled 最近报错 - 日志页可切换日志源:守护进程 / 网络诊断 / 登录 / 看门狗 / DNS / 二进制部署
- 状态页「网络诊断 → 抓取」立即写一条快照并展示;「修复」立即执行路由与 DNS 修复
- 路由修复同时处理 IPv4 / IPv6(含运营商 CLAT 场景)
抓日志步骤(给作者用)
- 安装本包 → 重启一次(让
system/etc/resolv.conf叠加生效) - 设置页把「日志级别」设为 调试 并保存
- 复现连接失败(点登录 / 启动),等 1~2 分钟让快照落盘
- 日志页切到「网络诊断」和「守护进程」,把内容导出或截图
Tailscale Root v0.5.0
Tailscale Root v0.5.0
KernelSU / Magisk / APatch 模块:把 tailscaled 以 root 守护进程方式常驻运行在 Android 上,并内置 WebUI 管理。
本版亮点
- 内置二进制:随包携带官方 tailscale 1.104.4(arm64),开机自动部署,安装与升级全程离线
- 自建 tailscaled:WebUI 内扫描设备文件或手动填路径即可安装自己编译的守护进程,模块升级不会覆盖,可一键回滚到内置版本
- 本地包安装:支持直接导入官方
.tgz包(离线安装) - 自建控制服务器(Headscale):新增
TS_LOGIN_SERVER/TS_AUTHKEY/TS_UP_ARGS,登录失败会直接显示tailscale up原始报错 - 启动参数可配:新增
TS_TUN/TS_EXTRA_ARGS - 所有操作均可在 WebUI 完成,不需要命令行
安装
- 下载
tailscale_root-v0.5.0.zip - 在 KernelSU / Magisk / APatch 管理器中安装
- 重启,内置二进制会自动部署到
/data/adb/tailscale/bin/ - 从管理器打开模块 WebUI,登录并连接
说明
- 内置二进制为官方原版,未做任何修改,模块只负责部署与编排
- 当前内置架构为 arm64