Проброс портов

Mobile SSH поддерживает локальный проброс портов SSH как на Android, так и на iOS. Локальный порт на устройстве слушает на 127.0.0.1 и перенаправляет трафик через SSH-подключение на удалённый хост и порт.

На Android также есть страница VPN для SSH VPN, локального SOCKS5-прокси, WireGuard, Shadowsocks и OpenVPN. Эти профили маршрутизации существуют отдельно от описанных ниже сохранённых локальных пробросов портов.

Синтаксис сохранённого туннеля

Правила проброса портов разделяются запятыми. Каждая запись использует одну из двух форм:

PORT
LOCAL:REMOTEHOST:REMOTE

Краткая форма:

8080

Это привязывает 127.0.0.1:8080 на устройстве и перенаправляет на localhost:8080 с точки зрения сервера.

Полная форма:

3000:localhost:3000

Это привязывает 127.0.0.1:3000 на устройстве и перенаправляет через SSH на localhost:3000 на удалённой стороне.

Несколько пробросов:

8080, 3000:localhost:3000, 15432:db.internal:5432

Добавление туннеля к сохранённому серверу

  1. Откройте Saved Servers.
  2. Добавьте или отредактируйте профиль сервера.
  3. Введите правила проброса в поле Port forwards.
  4. Сохраните сервер.
  5. Подключитесь к серверу.

Приложение применяет сохранённые пробросы после подключения SSH-сессии.

Туннели принадлежат профилю сервера

Локальные пробросы задаются в сохранённом профиле сервера и запускаются при подключении к нему. Чтобы изменить их, отредактируйте профиль и переподключитесь.

Сохранённый в профиле туннель восстанавливается при каждом подключении, в том числе после переподключения в новой сети.

Адреса назначения IPv6

Адрес назначения IPv6 нужно заключать в квадратные скобки, чтобы двоеточия нельзя было спутать с разделителем порта:

8080:[2001:db8::1]:80

Голый IPv6-адрес без скобок отклоняется как неоднозначный, а не читается неправильно молча. Та же форма со скобками работает и в поле адреса сервера, с необязательным портом после неё ([fe80::1]:22).

Привязка адреса

Mobile SSH привязывает локальные пробросы к 127.0.0.1 на устройстве. Это сделано намеренно: туннель остаётся локальным для устройства и исключаются неожиданности, связанные с loopback-адресами только по IPv6. Другие приложения на том же устройстве могут подключаться к проброшенному локальному порту, если операционная система разрешает им сетевой доступ.

Распространённые примеры

Доступ к веб-сервису, работающему на удалённом сервере:

8080

Затем откройте http://127.0.0.1:8080 в браузере на том же устройстве.

Доступ к серверу разработки:

3000:localhost:3000

Доступ к внутренней базе данных, доступной с SSH-сервера:

15432:db.internal:5432

Подключение через промежуточные серверы

На обеих платформах сохранённый SSH-сервер может подключаться через упорядоченный список промежуточных серверов. Отредактируйте целевой сервер, добавьте бастионы в разделе Подключаться через и задайте порядок. У каждого узла свои сохранённые учётные данные; развёрнутый маршрут может включать до восьми переходов.

Телефон обращается к первому бастиону, а каждый следующий адрес должен быть доступен с предыдущего сервера. Локальные пробросы используют тот же проверенный SSH-маршрут, что терминал и SFTP. Конечный адрес проброса достигается с последнего SSH-сервера. Каждый бастион должен разрешать дальнейшую передачу TCP, а подлинность каждого сервера проверяется до аутентификации. Такие маршруты требуют транспорта SSH и не применяются к Eternal Terminal.

VPN-маршрутизация на Android

Откройте VPN на главном экране, добавьте или импортируйте именованный профиль и нажмите Запустить. При необходимости подтвердите запрос VPN от Android. Пока профиль включён, кнопка меняется на Остановить маршрутизацию; карандаш редактирует профиль, корзина удаляет. Часто используемые типы VPN показываются первыми.

Android допускает только одно VPN-подключение устройства одновременно. Запуск другого профиля переключает VPN. Локальный SSH SOCKS5-прокси может продолжать работу через VPN другого типа. Tailscale использует отдельное приложение; запуск VPN в Mobile SSH заменяет его VPN-подключение. IKEv2/IPsec управляется в настройках VPN Android, а не в Mobile SSH.

SSH VPN и SOCKS5-прокси

Сайты задаются доменными именами, например example.org, включая само имя и его поддомены. Распознанные домены вне списка используют обычную сеть. Прямые подключения к IP и адреса, полученные через зашифрованный DNS, нельзя надёжно сопоставить со списком: они используют SSH. В SSH VPN одновременно применяются выбор приложений и сайтов; клиенты SOCKS5 выбираются настройкой самого клиента.

Удалённый DNS по умолчанию — 1.1.1.1:53; задайте числовой адрес резолвера, доступного с SSH-сервера. Пока активный SSH VPN переподключается или ожидает аутентификации, направленный в SSH трафик остаётся заблокированным, а известные обходные направления работают обычно. Остановка, переключение профиля, отзыв разрешения VPN или завершение приложения прекращают эту защиту. Клиенты не гарантируют режим постоянного VPN или блокировку соединений без VPN средствами Android.

WireGuard, Shadowsocks и OpenVPN

Движки этих протоколов входят в приложение. В Shadowsocks и OpenVPN нет выбора приложений и сайтов, доступного в SSH VPN. VPN также не может дать серверу доступ в интернет, ограниченный его провайдером или администратором.

Плитка быстрых настроек

Запустите профиль VPN один раз, чтобы выбрать его для плитки Mobile SSH VPN. Плитка подсвечена, пока VPN Mobile SSH включён, в том числе при подключении и переподключении. Касание останавливает его, следующее запускает запомненный профиль. Плитка не запускает SOCKS5-прокси и не останавливает VPN другого приложения.

На Android 13 и новее первое открытие страницы VPN вызывает запрос на добавление плитки. Если вы отказались или используете более раннюю версию Android, добавьте её через Быстрые настройки → Изменить. Если профиль удалён или нет разрешения, откроется страница VPN для настройки.

Устранение неполадок с туннелями