Открытие терминала в один клик по схеме neoserver:// на iOS

Author: Neo Huang
ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: 2026-08-17 00:40:16
Тег: 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 — она будет работать везде.


1. Как написать ссылку для терминала

Все ссылки для терминала выглядят так:

neoserver://terminal?host=<server>&port=<port>&user=<user>&name=<terminal_name>&tmuxName=<tmux_session>&zellijName=<zellij_session>&workdir=<directory>&command=<command>
Параметр Обязательный Что указывать
host IP-адрес или домен сервера. Обязательно. Если оставить пустым, ссылка недействительна.
port SSH-порт. По умолчанию 22. Допустимый диапазон 1–65535; при указании недопустимого значения ссылка недействительна.
user Имя пользователя для входа. По умолчанию root.
name Имя (примечание) для данного терминала (используется только для отображения, не влияет на сопоставление серверов).
tmuxName Автоматически подключиться к этой сессии tmux после установки соединения.
zellijName Автоматически подключиться к этой сессии zellij после установки соединения.
workdir Автоматически выполнить cd в этот удаленный каталог после установки соединения.
command Автоматически выполнить команду после установки соединения (с нажатием Enter). Для нескольких строк используйте разделитель %0A.

⚠️ Приоритет: tmuxName > zellijName > command > workdir.

  • tmuxName / zellijName и command не объединяются: если указано имя сессии, происходит только подключение к ней, а command игнорируется (подключение блокирует ввод в терминал, поэтому команду нельзя выполнить).
  • 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

# При подключении сразу входим в сессию tmux с именем main
neoserver://terminal?host=1.2.3.4&user=root&tmuxName=main

# При подключении сразу входим в сессию zellij с именем dev
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=production_server

# При подключении автоматически выполняется 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

2. Где откроется терминал после подключения

Это самая полезная часть ссылок для терминала: в зависимости от указанных параметров терминал после подключения открывается в разных местах:

Указанные параметры Состояние терминала после подключения
Только host (+ опционально port/user) Открывается обычный терминал в домашнем каталоге пользователя
tmuxName=main Автоматически выполняется tmux attach к сессии main, возвращая вас к тому месту, где вы остановились
zellijName=dev Автоматический вход в сессию zellij с именем dev
workdir=/var/log Автоматический переход (cd) в каталог /var/log
command=ls -la После готовности терминала эта команда автоматически вводится и выполняется
workdir=/var/log&command=tail -f syslog Сначала cd в /var/log, затем выполняется tail -f syslog

Зачем нужны эти три типа параметров?

  • Сессии tmux / zellij: при обрыве сети, закрытии приложения или переподключении с другого телефона сессия сохраняется, а процессы не прерываются. Если поделиться сессией tmux сервера с коллегой, вы оба сможете работать в одном окне для совместного решения проблем.
  • Каталог: если вам каждый раз при подключении нужно делать cd /opt/app/logs, проще позволить ссылке сразу перенести вас туда.
  • Команда: автоматический запуск команды при подключении (например, сбор логов, проверка статуса или запуск скрипта развертывания). Может сочетаться с workdir (сначала переход в каталог, затем выполнение).

name не влияет на поведение после подключения, а лишь дает терминалу понятное имя, чтобы его было легче найти в списке.


3. Копирование ссылки в приложении (вручную писать не нужно)

При написании ссылок вручную легко ошибиться. В NeoServer есть три места для копирования в один клик; после копирования ссылку можно вставить куда угодно.

1. Копирование ссылки для «этого сервера»

Вкладка «Серверы» · Список серверовсмахните влево по нужному серверу → Copy Scheme Link

В результате скопируется:

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

2. Копирование в быстром режиме терминала

Вкладка «Терминал» · Список серверов (быстрый режим) → нажмите и удерживайте нужный сервер → Copy Scheme Link

3. Копирование ссылки для «этой сессии» ⭐ Самое полезное

Вкладка «Терминал» · Список сессийнажмите и удерживайте нужную сессию → Copy Scheme Link

Эта ссылка упакует в себя «подключение к сессии Y на сервере X»:

  • Если это сессия tmux → автоматически добавится &tmuxName=...
  • Если это сессия zellij → автоматически добавится &zellijName=...
  • Обычная сессия → только host/port/user

При успешном копировании появится уведомление Link Copied, и ссылка будет в буфере обмена.

✏️ Скопированная ссылка содержит только host/port/user (для ссылок сессий добавляются tmuxName или zellijName). Хотите добавить name (примечание) или command (автоматическая команда)? Просто допишите их в конец ссылки вручную; пока что приложение не генерирует эти два параметра.

💡 Нажмите и удерживайте для копирования запущенной сессии tmux и отправьте ее коллеге. Открыв ее в NeoServer, он сразу подключится к этой же сессии — вы оба окажетесь в одном окне терминала.


4. Как открыть эту ссылку

neoserver:// — это протокол ссылок iOS, поэтому везде, где можно нажать на ссылку, можно запустить NeoServer:

  • Safari: вставьте в адресную строку и нажмите Enter, либо сохраните в закладки и откройте.
  • Заметки / Напоминания: сохраните запись и нажимайте на нее для быстрого доступа.
  • Быстрые команды (Shortcuts): вставьте ссылку в действие «Открыть URL» → можно привязать к голосовой команде Siri, иконке на рабочем столе или автоматизации.
  • AirDrop: отправьте ссылку между двумя iPhone; получателю достаточно нажать на нее для подключения.
  • Почта: отправьте ссылку как текст; получатель скопирует ее в Safari для открытия.

📱 При первом нажатии на ссылку neoserver:// на устройстве iOS появится запрос «Открыть в NeoServer?», просто подтвердите, и это сообщение больше не появится.


5. Три практических сценария

🏠 Сценарий 1: Иконка на рабочем столе для «подключения к tmux на проде»

Вам каждый день нужно подключаться к сессии tmux main на производственном сервере. Вместо того чтобы каждый раз открывать приложение → искать сервер → подключаться → делать attach, вынесите иконку на рабочий стол:

  1. Скопируйте ссылку этого сервера в приложении и вручную добавьте &tmuxName=main;
  2. Откройте iOS «Быстрые команды (Shortcuts)» → создайте новую → добавьте действие «URL» и вставьте ссылку;
  3. Добавьте действие «Открыть URL»;
  4. Нажмите «Поделиться» → Добавить на экран «Домой», назовите ее «Подключение к проде» и выберите иконку.

Теперь при нажатии на эту иконку NeoServer автоматически подключится и войдет в сессию main без дополнительных действий с вашей стороны.

🎙️ Сценарий 2: Голосовое подключение

Интегрируйте указанную выше быструю команду в Siri, задав фразу «Привет, Siri, подключение к проде». После произнесения фразы телефон подключится автоматически.

🤝 Сценарий 3: Передача сессии коллеге

  1. Терминал · Список сессий → нажмите и удерживайте эту сессию → Copy Scheme Link;
  2. Отправьте коллеге (через AirDrop / WeChat / любой мессенджер);
  3. Он откроет ее в NeoServer → автоматически подключится к той же сессии tmux.

(Предварительное условие: в библиотеке серверов NeoServer на его iPhone также должна быть возможность подключиться к этому же хосту.)

🖥️ Сценарий 4: Запуск команды в один клик с рабочего стола

Каждый день нужно проверять статус контейнеров на машине, и не хочется каждый раз подключаться и вводить docker ps вручную:

  1. Скопируйте ссылку на сервер и вручную добавьте &command=docker%20ps;
  2. Как в сценарии 1, вынесите иконку на рабочий стол и назовите ее «Статус контейнеров».

Теперь при нажатии на иконку → NeoServer подключится → автоматически выполнится docker ps, и результат сразу отобразится в терминале.


6. Часто задаваемые вопросы о ссылках для терминала

В: Нажал на ссылку, но подключился к неправильному серверу? О: NeoServer ищет сервер по host (+ port, если указан + user, если указан). Если в вашей библиотеке есть два сервера с одинаковым host, будет подключен первый совпадающий. Указание port или user поможет точно их различить.

В: Этого сервера нет в библиотеке, что будет при нажатии на ссылку? О: Страница «Новый сервер» больше не появится. Теперь прямо на месте будет открыт временный терминал, использующий host/port/user из ссылки:

  • Сначала будет предпринята попытка аутентификации без учетных данных (подходит для таких сценариев, как Tailscale SSH, где подключение уже проверяет личность);
  • Если сервер требует пароль, будет выполнен откат к обычной парольной / keyboard-interactive аутентификации NeoServer;
  • Временный сервер не добавляется в вашу библиотеку серверов и освобождается при закрытии;
  • Однако в «Недавних сессиях» останется снимок без пароля и закрытых ключей, нажав на который после перезапуска приложения можно переподключиться.

Параметры name / tmuxName / zellijName / workdir / command из исходной ссылки продолжают действовать в штатном режиме.

В: Можно ли передать пароль прямо в ссылке, чтобы не вводить его каждый раз? О: Нет. Это ограничение безопасности — пароль никогда не передается в ссылке. Даже если вы вручную добавите password=xxx, это будет проигнорировано. Пароль проходит только через связку ключей (Keychain) внутри приложения.

В: Для чего нужен name? О: Это просто имя (примечание) для данного терминала, чтобы вам было легче найти его в списке. Он не влияет на сопоставление серверов — две ссылки с одинаковым host, но разными name все равно подключатся к одному и тому же серверу.

В: Есть ли риски безопасности при использовании command? О: Да, небольшая доля риска есть, об этом нужно знать. command выполняется автоматически (с нажатием Enter) после подключения. Любое приложение или веб-страница может отправить neoserver://...&command=..., поэтому не нажимайте на непонятные ссылки с параметром command. При первом запуске iOS покажет запрос «Открыть в NeoServer?» в качестве единственной защиты; к серверу, требующему пароля, пароль все равно не будет добавлен, произойдет откат к обычной аутентификации.

В: Можно ли указать каталог с китайскими иероглифами или пробелами в workdir? О: Да. Пишите прямо, например: workdir=/home/me/my logs. Специальные символы будут автоматически обработаны приложением. Самый надежный способ — копировать с помощью приложения, а не писать вручную.

В: Нажал на ссылку и ничего не происходит? О: ① Убедитесь, что она начинается с neoserver://; ② При первом нажатии должно появиться подтверждение «Открыть в NeoServer»; ③ Проверьте, что host не пустой; ④ Ничего страшного, если приложение не работает на переднем плане, оно запустится автоматически.

В: Можно ли открывать такие ссылки на Android / Windows? О: Нет. Ссылки neoserver:// распознаются только на iPhone / iPad с установленным приложением NeoServer.


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