爱意满满的作品展示区。
netox

集成 tailscale 的 android SSH/SFTP 终端

  •  
  •   netox · 2h 13m ago · 174 views

    之前分享过我的 iOS 应用 NovaScale(原名 NovaAccess), 它直接集成了 Tailscale 内核, 把 SSH/SFTP/Remote Codex 这些功能整合到一个 App 里, 无需开启 Tailscale VPN 客户端, 也可以在有 VPN 运行的情况下运行, 目前还在积极迭代基于 herdr remote 协议, 以满足像我这样重度 Tailscale 用户远程开发以及维护服务的一些需求

    距离之前发贴已经有一段时间了,这期间 iOS 版本增加了很多新功能,同时也修复了一些 libtailscale 的问题(相关修复开源在 https://github.com/GalaxNet-Ltd/libtailscale 不知道为啥, 感觉 Tailscale 的 iOS 有些严重问题上游修复的不积极, 比如这个断网问题: https://github.com/tailscale/tailscale/issues/19504); 与此同时, 我也一直在用多余的 codex 额度(pro 5x 用户, 近期 reset 实在时太多了), 在开发一个全免费全开源的 Play 版本, 用来满足当时一些国内外用户提到的 android 版本需求

    由于之前的一些方案感觉不理想, 在 5.6/astra 发布后又进了一些优化, 感觉逐渐达到了自己可用的情况, 甚至为 SSH terminal 增加基于 SGR 的鼠标支持(herdr 这种 mouse native 的 TUI 应用需要)基本上 Astra 一发就差不多了

    最近重新把之前的 play 开发者账号用了起来, 全部委托给 codex 负责截图、描述、商店操作(甚至如何搞授权也是 codex 告诉我的, 相比 iOS 开发要复杂点), 没想到当前提交隔天就通过了

    因此发在这里也分享给有需要的朋友, 提前声明如下:

    1 、这是一个完全免费的应用,代码完全开源 ( https://github.com/GalaxNet-Ltd/novascale-android), 与 iOS 版本不同, 没有采用 libtailscale, 直接让 codex 基于 tailscale 源码适配

    2 、半年前的最初版本大概还是 claude 做的, 感觉做的不怎么样, 当前完全由 Codex 开发, 我只负责架构文档和最终的验收, 所以可以称之外完全 AI 开发并发布的版本, 后面可能会根据用户反馈、时间和 Codex 额外会进行一些迭代; 总体上感觉满足我有时候 iPhone 没电时用 Android 手机的需求

    3 、代码为 GPL 协议, 原因在于从 termux 上借了一些 terminal rendering 的代码, 这部分它的协议是 GPL 的, 因此也只能 GPL 开源

    Android 版本 NovaScale 的一些主要功能如下:

    • 无需安装 Tailscale 官方 App ,因此可以同时使用其他 VPN
    • 基于 libghostty(准确说是 libghostty-vt 库) + Termux 渲染方案
    • 支持鼠标操作(因此 tmux / herdr 等场景可以正常使用)
    • 支持剪贴板功能(包括 OSC52 )
    • 支持自定义控制服务器(即支持 headscale 或其他自建 tailscale coordinator)
    • 内置 SFTP 文件浏览器,支持直接编辑文件, 以及少量代码类型的高度支持
    • 内置浏览器,可访问 tailnet 内部的 Web 服务
    • 支持后台代理,让第三方应用使用 tailnet 连接, 例如你正在使用其他非 Tailscale VPN 时,也可以配合 Termius 等 SSH 客户端连接服务器

    技术架构如下:

    • tailscale 源码包装出 lib
    • russh 通过 ffi 与 tailscale lib 进行通信, 实现 ssh 通道
    • 使用 termux 提供的代码实现了一个 terminal UI 的渲染
    • tailscale lib 中提供一个 socks5 代理, 此代理供浏览器实现基于 MagicDNS 的访问, 同时这个代理可以提供给其他进程使用

    如果你是 Android 用户,并且对此感兴趣,可以通过如下链接下载:

    https://play.google.com/store/apps/details?id=cc.galaxnet.novascale

    简单推广下 iOS 版 NovaScale ,它包含 Android 版的全部功能,基础功能免费, 有少量的付费功能需要订阅或买断支持:

    • 多 tailnet 支持
    • 基于内置 Tailscale 和主机 Codex App-Server 直接交互的远程 Codex 方案(无需第三方中转)
    • 服务器监控
    • Docker 管理

    目前我还在尝试通过 herdr 的协议实现原生 herdr 支持,让它能够像 herdr remote 一样工作。

    iOS 版本可通过如下链接下载:

    https://apps.apple.com/cn/app/novascale-%E4%B8%93%E4%B8%BA-tailscale-%E6%89%93%E9%80%A0/id6749938291

    PS:

    1 、最近看到 tailscale CEO 也忍不住充了点 codex 的额度, vibe 了一个内置 Tailscale 的 jellyfin 客户端, 同样也是基于 libtailscale 实现的, 有需要用户可以去他的 X 的帖子上翻翻应该能找到 testflight

    2 、作为 tailscale 的重度用户, 也欢迎私信技术交流

    2 replies  •  2026-09-26 23:09:56 +08:00
    300
        1
    300  
       1h 50m ago
    之前公司用 tailscale 确实需要这个

    跑路之后把自己的设备全改回 wireguard 了,因为 mihome/xray 之类的都支持 wireguard ,把自己的 ip 段添加到路由,只要代理开着就能直连了现在
    FirerWire3
        2
    FirerWire3  
       1h 16m ago via iPhone
    iOS 上 ssh 连接 Mac 后检测不到 tmux ,其实我是有装 tmux 的,只是不想用 brew 来装一堆依赖,就用的 zinit 来管理这些工具。目前的 tmux 自动检测逻辑是什么?能否添加读取.zhsrc 文件来检测 tmux 或者手动指定 tmux 路径的功能?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1478 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 16:26 · PVG 00:26 · LAX 09:26 · JFK 12:26
    ♥ Do have faith in what you're doing.