最近新上架了一个不需要 VPN 的 iOS Tailscale SSH Terminal 免费客户端 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
fortitudeZDY
V2EX    分享创造

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

  •  
  •   fortitudeZDY 56 天前 2669 次点击
    这是一个创建于 56 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为基于 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  
       56 天前
    很不错!支持一下!
    billzhuang
        2
    billzhuang  
       56 天前 via iPhone
    Login tailnet 可以透过 OIDC 的方式么?
    billzhuang
        3
    billzhuang  
       56 天前 via iPhone
    这个是运行在 userspace 里?所以本地生成了一个代理?
    followad
        4
    followad  
       56 天前 via iPhone
    蛮不错的 pro 确实要更完善的功能,先收藏了
    v2ro88
        5
    v2ro88  
       56 天前
    还支持 15.0 ,赞一个,红心献上
    fortitudeZDY
        6
    fortitudeZDY  
    OP
       56 天前
    @billzhuang 支持 web 方式认证,因此理论上如果你在 tailscale 官网设置了第三方 idP ,应该是可以的
    fortitudeZDY
        7
    fortitudeZDY  
    OP
       56 天前
    @v2ro88 俺有一台 iphone 6splus ,用来真机测试低版本,最高版本就是 15.0 ,因而尽可能都想支持较低的 iOS 版本;为了这个还需要对 tailscale 的 sdk 作点小修改。。。
    fortitudeZDY
        8
    fortitudeZDY  
    OP
       56 天前
    @billzhuang 不是本地生成代理,而是直接将 ssh terminal 的底层传输层网络连接导入到 tailscale userspace 协议栈里,这样可以直接 ssh 到私有网络的 ssh 服务器上;当然后面打算还会加上通过一个 app 内置浏览器访问 tailnet 上的 web 资源,但目前看可能需要 iOS 18 ,暂时还没有加上。
    fortitudeZDY
        9
    fortitudeZDY  
    OP
       56 天前
    @yanyuechuixue 感谢支持
    fortitudeZDY
        10
    fortitudeZDY  
    OP
       56 天前
    @followad 感谢支持,后面会继续抽空迭代完善功能。
    billzhuang
        11
    billzhuang  
       56 天前
    @fortitudeZDY 不太明白,你细说说。
    fortitudeZDY
        12
    fortitudeZDY  
    OP
       56 天前
    @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  
       56 天前 via iPhone
    terminal 不感兴趣,倒是对 op 的 mintflow 感觉有点意思
    followad
        14
    followad  
       56 天前 via iPhone
    @fortitudeZDY 发码会在这帖子下面么 e
    huyasi
        15
    huyasi  
       56 天前 via iPhone   1
    下载了
    kapr1k0rn
        16
    kapr1k0rn  
       56 天前
    建议 OP 可以到 reddit 的/r/tailscale 推广一下,基于 tailscale 的应用方案在那边很受欢迎
    fortitudeZDY
        17
    fortitudeZDY  
    OP
       56 天前
    @lightionight 哈哈,解决一个自己的小问题,mintflow 还在打磨中,跟其他的不能比,还有一个原因是因为 vpp 比较重也有一些技术包袱,还得再折腾。等后面再完善点了再送点码出来:)


    @kapr1k0rn 谢谢提醒,之前已经发了,我也经常关注/r/tailscale
    otherbanana
        18
    otherbanana  
       56 天前
    支持,马上下载试用
    billzhuang
        19
    billzhuang  
       55 天前
    @fortitudeZDY 我是想请假下#8 的实现,不是很明白你的实现
    phoenix
        20
    phoenix  
       55 天前
    未来是否可以通过本地代理的方式将 Tailnet 上其他服务端口暴露出来,以访问 SSH 以外的服务?
    fortitudeZDY
        21
    fortitudeZDY  
    OP
       55 天前
    @phoenix 我估计不太可行,原因在于 iOS 环境下 app 可能没法常驻后台并同时保持网络连接,我的计划是后面通过内置 webview 的方式配合 app 内部的环回代理访问远程的 web 服务。
    phoenix
        22
    phoenix  
       55 天前
    @fortitudeZDY #21 还有一个思路是把访问 Tailnet 的功能内置到 VPN 客户端比如你的 MintFlow NetStack 里,来解决常驻后台的问题。
    Quanuanc
        23
    Quanuanc  
       55 天前
    测试在打开了 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
       55 天前   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  
       55 天前 via iPhone
    @fortitudeZDY 我就是 Loon 下测试的,可以用,很不错的软件!感谢 up 。就是想问一下,这个软件退出后台就掉线吗?一打开软件就自动连接?还请解惑,谢谢。
    Quanuanc
        26
    Quanuanc  
       54 天前
    @fortitudeZDY 感谢,修改我的 surge 配置后能连上了。

    话说后续有计划支持指定 login server 吗,例如 login.xedge.cc
    fortitudeZDY
        27
    fortitudeZDY  
    OP
       54 天前 via iPhone
    @Quanuanc 有计划,打算支持 web view 等功能时一并支持下,难度应该不大,到时可能会在 pro 版本中提供,到时 v 站会提供码子给大家:)
    fortitudeZDY
        28
    fortitudeZDY  
    OP
       54 天前 via iPhone
    @patrickguokai 切到后台后 Apple 会停止网络,此时会断开,切回前台会重新连接。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3470 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 04:43 PVG 12:43 LAX 21:43 JFK 00:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86