Skip to content

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

Одна ссылка neoserver:// , одно нажатие — и NeoServer автоматически запускается, подключается к серверу и открывает терминал именно там, где вам нужно — будь…

8 мин чтения

Одна ссылка 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.


Готовы попробовать?

NeoServer · SSH, Mosh, Docker & SFTP client for iPhone, iPad and Mac

Бесплатно в App Store