iOS上用 neoserver:// scheme 链接一键打开终端

Author: Neo Huang
最后更新: 2026-09-19 10:42:34
标签: NeoServer

Index

NeoServer

NeoServer offers a comprehensive management solution for your servers, NAS (Network Attached Storage), and Linux-based routers across iPhone, iPad, and Mac platforms.

一条 neoserver:// 链接,点一下,NeoServer 自动唤醒、连上服务器、把终端开到你想要的位置—— 可能是某台机器、某个 tmux 会话、或某个目录。

把它存进 Safari 收藏、备忘录、桌面图标、Siri 快捷指令,或 AirDrop 给同事,都能用。


一、终端链接怎么写

所有终端链接长这样:

neoserver://terminal?host=<服务器>&port=<端口>&user=<用户>&name=<终端备注>&tmuxName=<tmux会话>&zellijName=<zellij会话>&workdir=<目录>&command=<命令>
参数 必填 填什么
host 服务器 IP 或域名。必填,留空链接作废。
port SSH 端口,不写默认 22。有效范围 1–65535,填非法值链接作废。
user 登录用户名,不写默认 root
name 这次终端的备注名(显示用,不参与服务器匹配)。
tmuxName 连上后自动进这个 tmux 会话
zellijName 连上后自动进这个 zellij 会话
workdir 连上后自动 cd 到这个 远程目录
command 连上后自动执行一条命令(带回车)。多行用 %0A 分隔。

⚠️ 优先级:tmuxName > zellijName > command > workdir

  • tmuxName / zellijNamecommand 不组合:带了会话名就只 attach 该会话,command 会被忽略(attach 会占住终端输入,命令塞不进去)。
  • command 可以和 workdir 一起用:先 cd 进目录,再执行命令。
  • tmuxName / zellijName / workdir 三者仍互斥。
  • name 是纯显示名,跟谁都能共存,不影响上面的逻辑。

照着抄,改成你的就行:

# 最简单:只给 host
neoserver://terminal?host=1.2.3.4

# 指定端口和用户
neoserver://terminal?host=1.2.3.4&port=2222&user=deploy

# 连上直接进 main 这个 tmux 会话
neoserver://terminal?host=1.2.3.4&user=root&tmuxName=main

# 连上直接进 dev 这个 zellij 会话
neoserver://terminal?host=1.2.3.4&user=root&zellijName=dev

# 连上自动 cd 到日志目录
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log/nginx

# 给这次终端起个备注名(列表里显示用,不参与匹配)
neoserver://terminal?host=1.2.3.4&user=root&name=生产机

# 连上自动执行 ls -la(%20 = 空格)
neoserver://terminal?host=1.2.3.4&user=root&command=ls%20-la

# 先 cd 进 /var/log,再执行 tail -f syslog
neoserver://terminal?host=1.2.3.4&user=root&workdir=/var/log&command=tail%20-f%20syslog

# 多行命令:先 cd /tmp 再 pwd(%0A = 换行)
neoserver://terminal?host=1.2.3.4&user=root&command=cd%20%2Ftmp%0Apwd

二、连上之后,终端会停在哪

这是终端链接最有用的部分——填不同的参数,连上后终端开到的地方不一样:

你填的参数 连上后终端的样子
只填 host(+可选 port/user) 开一个普通终端,停在用户家目录
tmuxName=main 自动 tmux attachmain 会话,回到你上次离开的画面
zellijName=dev 自动进 dev 这个 zellij 会话
workdir=/var/log 自动 cd/var/log 目录
command=ls -la 终端就绪后自动敲下并执行这条命令
workdir=/var/log&command=tail -f syslog cd/var/log,再执行 tail -f syslog

为什么要分这三种?

  • tmux / zellij 会话:断网、关 App、换手机再连,会话还在,进程不丢。把一台服务器的 tmux 会话分享给同事,两个人能进同一个画面一起排查。
  • 目录:你每次连上来都要 cd /opt/app/logs,不如让链接直接把你放过去。
  • 命令:连上自动跑一条命令,比如拉日志、看状态、跑部署脚本。能和 workdir 叠加(先进目录再跑)。

name 不影响连上后的行为,只是给这次终端起个好认的名字,方便在列表里找。


三、在 App 里复制链接(不用手写)

手写链接容易写错。NeoServer 在三个地方能一键复制,复制完粘贴到任意地方即可。

1. 复制「这台服务器」的链接

服务器 tab · 服务器列表 → 在某台服务器上左滑Copy Scheme Link

复制出来是:

neoserver://terminal?host=...&port=...&user=...

2. 在终端 quick 模式里复制

终端 tab · 服务器列表(quick 模式)→ 长按某台服务器 → Copy Scheme Link

3. 复制「这个会话」的链接 ⭐ 最有用

终端 tab · 会话列表长按某个会话 → Copy Scheme Link

这条链接会把「连到 X 服务器的 Y 会话」打包进去:

  • 这个会话是 tmux → 自动带上 &tmuxName=...
  • 这个会话是 zellij → 自动带上 &zellijName=...
  • 普通会话 → 只有 host/port/user

复制成功会弹 Link Copied,链接已经在剪贴板。

✏️ 复制出来的链接只含 host/port/user(会话链接另带 tmuxNamezellijName)。 想加 name(备注)或 command(自动执行命令)?手动拼到链接末尾即可,App 内暂时不生成这两个。

💡 把一个正在跑的 tmux 会话长按复制发给同事,他用 NeoServer 点开,直接 attach 到同一个会话——你们俩进入同一个终端画面。


四、怎么打开这条链接

neoserver:// 是 iOS 链接协议,任何能点链接的地方都能唤起 NeoServer

  • Safari:粘进地址栏回车,或存进收藏夹点。
  • 备忘录 / 提醒事项:存一条,点一下直达。
  • 快捷指令:「打开 URL」动作里填链接 → 可绑 Siri 语音、桌面图标、自动化。
  • AirDrop:两台 iPhone 互发一条链接,对方点开即连。
  • 邮件:把链接当文本发出去,对方复制到 Safari 打开。

📱 真机首次点击 neoserver://,iOS 会弹「在 NeoServer 中打开?」,确认即可,之后不再弹。


五、三个实战场景

🏠 场景 1:把「连生产 tmux」做成桌面图标

你每天都要连生产机的 main tmux 会话。与其每次开 App → 找服务器 → 连 → attach, 不如做成一个图标:

  1. App 里复制这台服务器的链接,再手动补上 &tmuxName=main
  2. 打开 iOS「快捷指令」→ 新建 → 加「URL」动作,粘贴这条链接;
  3. 加「打开 URL」动作;
  4. 点分享 → 添加到主屏幕,起名「连生产」,选个图标。

以后桌面点这个图标,NeoServer 自动连上并进到 main 会话,全程零操作。

🎙️ 场景 2:用语音连

把上面的快捷指令接入 Siri,设一句「嘿 Siri,连生产」。说完手机自动连。

🤝 场景 3:把一个会话丢给同事

  1. 终端 · 会话列表 → 长按这个会话 → Copy Scheme Link
  2. 发给同事(AirDrop / 微信都行);
  3. 他用 NeoServer 点开 → 自动 attach 到同一个 tmux 会话。

(前提:他那台 iPhone 上 NeoServer 的服务器库也要能连上同一台 host。)

🖥️ 场景 4:桌面图标一键跑命令

每天要看某台机器的容器状态,不想每次连上再手敲 docker ps

  1. 复制服务器链接,手动补上 &command=docker%20ps
  2. 按场景 1 做成桌面图标,起名「容器状态」。

以后点图标 → NeoServer 连上 → 自动执行 docker ps,结果直接刷在终端里。


六、终端链接常见问题

Q:点了链接,连到了错误的服务器? A:NeoServer 按 host(+ port 若填了 + user 若填了)找服务器。如果你库里有两台 host 相同的服务器,会连第一个匹配的。填上 portuser 能精确区分。

Q:库里没这台服务器,点链接会怎样? A:不会再弹「新建服务器」页面了。 现在直接用链接里的 host/port/user 现场开一个临时终端

  • 优先尝试无凭据认证(适合 Tailscale SSH 这种连接本身已验明身份的场景);
  • 服务器若要求密码,再回落到 NeoServer 原有的密码 / keyboard-interactive 认证;
  • 临时服务器不写进你的服务器库,关掉就释放;
  • 但会在「最近会话」里留一条不含密码和私钥的快照,App 重启后点它还能重新连上。

原链接带的 name / tmuxName / zellijName / workdir / command 照常生效。

Q:链接里能直接带密码,省得每次填吗? A:不能。 这是安全限制——链接里永远不带密码。就算你手动加 password=xxx 也会被忽略。 密码只走 App 内的钥匙串。

Q:name 是干嘛用的? A:只是这次终端的备注名,方便你在列表里认出来。它不参与服务器匹配——两台 host 一样、name 不同的链接,连的还是同一台。

Q:command 会有安全风险吗? A:有一点,得知道。command 连上后会自动执行(带回车)。任何 App、网页都能发一条 neoserver://...&command=...,所以别点来路不明的带 command 链接。iOS 首次会弹「在 NeoServer 中打开?」作为唯一拦截;需要密码的服务器它也带不上密码,只会回落到正常认证。

Q:带中文或空格的目录能填进 workdir 吗? A:能。直接写,比如 workdir=/home/me/my logs。特殊字符 App 会自动处理。 最稳的办法是用 App 复制,而不是手写。

Q:点了没反应? A:① 确认是 neoserver:// 开头;② 首次会弹「在 NeoServer 中打开」确认;③ 检查 host 没留空;④ App 没在前台也没关系,它会自动唤起。

Q:Android / Windows 能点开吗? A:不能。neoserver:// 只有装了 NeoServer 的 iPhone / iPad 才认。


Features

Multi Device

Support across multiple platforms: iPhone, iPad, Mac.

iCloud Sync

iCloud Sync ensures all your configuration information is securely stored in iCloud, facilitating seamless synchronization across your multiple devices.

Security

Security, featuring support for password and biometric (FaceID, TouchID) unlocking mechanisms.

A wealth of features.

providing support for SSH terminal, script execution, containers management, and metrics monitoring with zero server-side configuration required.

Screenshots