V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
fortitudeZDY
V2EX  ›  分享创造

最近新上架了一个不需要 VPN 的 iOS Tailscale SSH Terminal 免费客户端

  •  
  •   fortitudeZDY · 16 天前 · 2308 次点击

    作为基于 Tailscale 开发的 xEdge 的开发者,我一直非常喜欢 Tailscale ,然而自从我基于 fd.io VPP 开发了一个新的 iOS VPN 客户端(之前在站内分享过这个 VPN 客户端即 MintFlow NetStack 的 promo code )后,日常主要开着这个客户端,然而我总需要经常远程登陆到我的很多 SSH 服务器进行维护或客户支持,这个时候 iOS 不支持 VPN 多开就比较烦人了。

    我原计划想把 Tailscale 的客户端集成到我的 VPN 客户端中,但主要考虑到我的客户端网络协议栈主要基于 C 语言和 RUST 开发,实在不太想引入 Go 这个运行时;因此,趁近期有一些时间,加上我想再深入研究一下 Tailscale 作为 SDK 的可用性,以及 Terminal Emulator 的原理,于是果断开搞,而往往我比较头痛的 UI 部分,如今已经有 Claude Code 这个工具提供大力支持,因此一个月的时间便搞定了,而 Apple Store 的审核则比较有意思,首次提交后,只是问题了一些 App 的工作原因,以及和 Tailscale 账号之间的关系,便顺利通过了,可见如果不是太多同类的软件,稍微有那么一些独创性,通过的可能性还是挺高的。

    App 的名称是 NovaAccess ,目前主要是基于大神 Miguel de Icaza ( Gnome 项目的发起人,Mono/Xamian 等项目的发起人,大神最近从微软离职,却专注地搞 Apple 生态 App ,亲自写代码,值得学习)的 SwiftTerm (坛子里前几天发的 Nex Terminal 应该也是基于此项目)来实现 Terminal Emulator Engine ,网络部分则是 Tailscale 和 libssh2 来实现 SSH Terminal 。

    App 已经上架 AppStore ,目前免费下载,链接见下:

    https://apps.apple.com/us/app/novaaccess/id6749938291

    当然 App 也同样在 ProductHunt 发布,链接见下,如果您感觉 App 对您有帮助,希望也能举手之劳,帮忙 upvote 一下,在此感谢您。

    https://www.producthunt.com/products/novaaccess?launch=novaaccess

    其他说明:

    1. 目前不支持 custom login server ,之所以这样,是因为目前 App 和 Tailscale 客户端一样尚不支持中文,另外就是个人有点小私心,期望后面的 Pro 版本提供 custom login server 支持;还有就是 AppStore 往往提交第二个版本可能会有一些更严格的审核,因此想暂时让功能简单以减少风险;后续如果支持 Pro 版本,一定会在坛内给朋友送 Pro 版本使用。
    28 条回复    2025-08-19 16:45:22 +08:00
    yanyuechuixue
        1
    yanyuechuixue  
       16 天前
    很不错!支持一下!
    billzhuang
        2
    billzhuang  
       15 天前 via iPhone
    Login tailnet 可以透过 OIDC 的方式么?
    billzhuang
        3
    billzhuang  
       15 天前 via iPhone
    这个是运行在 userspace 里?所以本地生成了一个代理?
    followad
        4
    followad  
       15 天前 via iPhone
    蛮不错的 pro 确实要更完善的功能,先收藏了
    v2ro88
        5
    v2ro88  
       15 天前
    还支持 15.0 ,赞一个,红心献上
    fortitudeZDY
        6
    fortitudeZDY  
    OP
       15 天前
    @billzhuang 支持 web 方式认证,因此理论上如果你在 tailscale 官网设置了第三方 idP ,应该是可以的
    fortitudeZDY
        7
    fortitudeZDY  
    OP
       15 天前
    @v2ro88 俺有一台 iphone 6splus ,用来真机测试低版本,最高版本就是 15.0 ,因而尽可能都想支持较低的 iOS 版本;为了这个还需要对 tailscale 的 sdk 作点小修改。。。
    fortitudeZDY
        8
    fortitudeZDY  
    OP
       15 天前
    @billzhuang 不是本地生成代理,而是直接将 ssh terminal 的底层传输层网络连接导入到 tailscale userspace 协议栈里,这样可以直接 ssh 到私有网络的 ssh 服务器上;当然后面打算还会加上通过一个 app 内置浏览器访问 tailnet 上的 web 资源,但目前看可能需要 iOS 18 ,暂时还没有加上。
    fortitudeZDY
        9
    fortitudeZDY  
    OP
       15 天前
    @yanyuechuixue 感谢支持
    fortitudeZDY
        10
    fortitudeZDY  
    OP
       15 天前
    @followad 感谢支持,后面会继续抽空迭代完善功能。
    billzhuang
        11
    billzhuang  
       15 天前
    @fortitudeZDY 不太明白,你细说说。
    fortitudeZDY
        12
    fortitudeZDY  
    OP
       15 天前
    @billzhuang 不太清楚你指的是自建 control server ,比如配合 headscale 实现 oidc 支持,如果是这个的话,因为这个 app 暂不支持 custom login server ,所以没法支持。如果是指 tailscale 的 custom oidc provider ,应该可以看他们的文档:

    https://tailscale.com/kb/1240/sso-custom-oidc

    当然我没有验证过,我理解是如果你设置了 custom oidc provider ,你以 web 方式认证时,它们会让你选择你所配置的 oidc 进行跳转认证。
    lightionight
        13
    lightionight  
       15 天前 via iPhone
    😄terminal 不感兴趣,倒是对 op 的 mintflow 感觉有点意思
    followad
        14
    followad  
       15 天前 via iPhone
    @fortitudeZDY 发码会在这帖子下面么 e
    huyasi
        15
    huyasi  
       15 天前 via iPhone   ❤️ 1
    下载了
    kapr1k0rn
        16
    kapr1k0rn  
       15 天前
    建议 OP 可以到 reddit 的/r/tailscale 推广一下,基于 tailscale 的应用方案在那边很受欢迎
    fortitudeZDY
        17
    fortitudeZDY  
    OP
       15 天前
    @lightionight 哈哈,解决一个自己的小问题,mintflow 还在打磨中,跟其他的不能比,还有一个原因是因为 vpp 比较重也有一些技术包袱,还得再折腾。等后面再完善点了再送点码出来:)


    @kapr1k0rn 谢谢提醒,之前已经发了,我也经常关注/r/tailscale
    otherbanana
        18
    otherbanana  
       15 天前
    支持,马上下载试用
    billzhuang
        19
    billzhuang  
       15 天前
    @fortitudeZDY 我是想请假下#8 的实现,不是很明白你的实现
    phoenix
        20
    phoenix  
       15 天前
    未来是否可以通过本地代理的方式将 Tailnet 上其他服务端口暴露出来,以访问 SSH 以外的服务?
    fortitudeZDY
        21
    fortitudeZDY  
    OP
       15 天前
    @phoenix 我估计不太可行,原因在于 iOS 环境下 app 可能没法常驻后台并同时保持网络连接,我的计划是后面通过内置 webview 的方式配合 app 内部的环回代理访问远程的 web 服务。
    phoenix
        22
    phoenix  
       15 天前
    @fortitudeZDY #21 还有一个思路是把访问 Tailnet 的功能内置到 VPN 客户端比如你的 MintFlow NetStack 里,来解决常驻后台的问题。
    Quanuanc
        23
    Quanuanc  
       15 天前
    测试在打开了 Surge 或者 Shadowrocket 的情况下,无法连接上 Tailscale ,Tailnet 一直显示 Disconnected ,关闭 Surge 或 Shadowrocket 就能连接上 Tailnet 了。
    同样的,在另一个内置了 Tailscale 功能的 App ,Scrcpy Remote 也有类似的情况,也是运行了 VPN 之后就连接不到 Tailscale 了,不知道这是不是 Tailscale sdk 的问题。
    附上 Scrcpy Remote 的 TestFlight https://testflight.apple.com/join/GJpcAcxZ ,感兴趣可以下载测试。
    fortitudeZDY
        24
    fortitudeZDY  
    OP
       14 天前   ❤️ 1
    @Quanuanc 手上没有 surge/shadowrocket ,但有 loon ,测试了下是可以的,我估计可能是分流规则的原因,可以看下 tailscale 的域名的访问记录,达到 connected 状态只与 control server 交互。

    7 月份 tailscale 搞了自己的 BGP as ,control server 的 ip 段已经稳定为下面两个,如果不想加域名,分流这两个 ip 到国外应该会比较稳定。

    IPv4: 192.200.0.0/24
    IPv6: 2606:B740:49::/48

    唉,如果这两个 IP 段被墙了...
    patrickguokai
        25
    patrickguokai  
       14 天前 via iPhone
    @fortitudeZDY 我就是 Loon 下测试的,可以用,很不错的软件!感谢 up 。就是想问一下,这个软件退出后台就掉线吗?一打开软件就自动连接?还请解惑,谢谢。
    Quanuanc
        26
    Quanuanc  
       14 天前
    @fortitudeZDY 感谢,修改我的 surge 配置后能连上了。

    话说后续有计划支持指定 login server 吗,例如 login.xedge.cc
    fortitudeZDY
        27
    fortitudeZDY  
    OP
       14 天前 via iPhone
    @Quanuanc 有计划,打算支持 web view 等功能时一并支持下,难度应该不大,到时可能会在 pro 版本中提供,到时 v 站会提供码子给大家:)
    fortitudeZDY
        28
    fortitudeZDY  
    OP
       14 天前 via iPhone
    @patrickguokai 切到后台后 Apple 会停止网络,此时会断开,切回前台会重新连接。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:57 · PVG 03:57 · LAX 12:57 · JFK 15:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.