Я сделаль. И запаковал сервер так, что его можно поднять с телефона: вбил IP и root-пароль - и нода в библиотеке. Цепочка из нескольких VPS - entry → relay → exit. Теперь даже на сервер заходить не надо.
[Любые совпадения случайны, присутствует сарказм и мета-ирония — прим. автора]
Преамбула
Раньше я делал Naive-клиент, и он нормально работал. Но потом клоуны решили включить поведенческий анализ. И вот - все. Ничего не работает. Дальше опять начинается гуглинг и, в итоге, опять я прихожу к VLESS с кучей надстроек, эмуляций различных браузеров, игр и так далее. Ах да, еще надо это все настраивать, делать цепочки из нескольких серверов, чтобы выход и вход не совпадал, заниматься скриптингом и снова молиться, что все заработает и будет работать дальше. А тем временем ssh -D отлично работал все это время, и я такой, а почему бы не выдать root всем завернуть это все внутрь ssh, да еще и по цепочке, да еще и чтобы настраивалось одной кнопкой. И не прокси, а полноценный VPN.
Ведь протокол уже есть - SSH. Его не надо изобретать. Им пользуются все, как и https. Если клоуны заблокируют SSH, то это будет конечно весело, тут уже, боюсь, я ничем помочь не смогу. Осталось лишь написать клиент под это дело, опубликовать его в сторах, доказать опять Apple что это приложение уникальное (как они достали с этим), рассказать ревьюверам в Гугле что такое SSH и как оно работает... тяжела жизнь Open Source программиста. Но я справился.
Представляю ɹǝddoH - (его тяжело будет найти в списке приложений на устройстве, ибо попробуйте это напечатать). Идея простая как тапок: телефон поднимает обычный Packet Tunnel / VpnService, а дальше весь IPv4 уходит сырыми IP-пакетами поверх SSH на entry-ноду. Там крутится hopperd, который гоняет трафик дальше по цепочке (снова по SSH) до exit, где TUN + NAT в интернет. Комбинируйте цепочки и сервера как хочется. Как насчет того, чтобы сделать нейронную сеть?
Снаружи с телефона до первого хопа - это SSH. Между хопами - тоже SSH. Чистейший. Никакого "ещё одного модного handshake'а, который завтра отфигнерят (именно отфингерят, а не отфингерпнинтят)". Вроде никто еще не запретил загружать файлы на сервера, а серверам - обмениваться информацией по зашифрованному каналу.
Подробности и исходники - ZonD80/hopper. Клиент сам провиженит цепочку: по SSH ходит exit к entry, поднимает hopperd, потом VPN-расширение коннектится только к первому хопу и уже через него едет весь трафик.
Почему хопы по SSH, а не ещё один VLESS
Во-первых, VLESS это модно. Я уже писал про это.
Плюс тренда - море инструкций. Минус - однотипные паттерны и постоянная гонка "какой transport сегодня не режут". Но когда нужно несколько своих машин подряд и NAT на выходе - прокси-клиенты начинают превращаться в оркестр костылей, которым надо как-то управлять. Тут же - настроил и забыл. Не работает - пересоздал ноду за секунды. Я на этот раз не стал даже показывать QR коды на сервере - все деплоится прямо из приложения!
SSH multi-hop в админском мире существует сто лет (ProxyJump, ssh -J). Не хватало одного: чтобы это было VPN в прямом смысле слова, а не прокси. Нужен был еще и серверный компонент, ибо SSHd не умеет то, что нужно, из коробки. А еще я люблю все запаковывать в один бинарник, чтобы если что - удалил и все.
ɹǝddoHd - как раз про это. Один бинарник hopperd на Linux, один протокол data plane (iptunnel поверх byte stream), клиенты на iOS (Network Extension) и Android (VpnService). Несколько цепочек на одних и тех же VPS. Несколько устройств на одной цепочке - каждому свой адрес из 10.64.{octet}.0/24.
Технически это то, что вы подумали - L3: телефон получает адрес из пула цепочки, default route уходит в туннель, exit делает NAT - до 250 подключений на сервер (или до лимита tun интерфейсов) - хостинги, welcome.
А как этим пользоваться?
Купите дешевую ubuntu vps (и попрощайтесь с ней), дальше все настроится само (почти).
Откройте ɹǝddoH → Configure chains → Server library → Deploy → host/IP, root, порт 22, пароль root → дождитесь деплоя. Сервер сам попадёт в библиотеку. Повторите для каждого хопа. Соберите цепочку entry → … → exit → Connect.
И все! Никаких сканирований QR кодов (хотя это тоже есть, ибо sharing is caring), вам даже не нужен компьютер, в отличие от ситуации с моим Naive-клиентом.
Клиенты
iOS/Android приложение: библиотека серверов, цепочки, Deploy / QR / Import JSON, Connect. Профили совместимы между платформами - можно шарить JSON/QR (они содержат ключи, это секреты, но вы и так уже попрощались с VPSкой, не так ли)?
Доступно:
GitHub Releases (IPA/APK)
Again, исходники открыты - hopper - you're welcome.
PS: Одной ноды мало?
Одна VPS = однохоповая цепочка (entry = exit). Две и больше — настоящий multi-hop. Один и тот же сервер может быть entry в одной цепочке и exit в другой.

Что я прошу у сообщества
Проект живой и боевой. Поэтому искренне приветствую:
больше тестов на разных сетях, операторах и странах;
pull request'ы - от мелких правок до аккуратных улучшений UX;
отзывы - что болит, чего не хватает, где я накосячил;
one-click-QR-коды для импорта готовых серверов, хостинги - предлагаю продавать лопаты во время золотой лихорадки - давайте запилим партнерку!
Legal notice: следуйте законам вашей страны и пробрасывайте туннели только туда, куда можно; любите ближнего (в рамках скреп).
UplandDivan
SSH не священная корова. Как минимум случаи ограничения по скорости или объёму трафика на нём уже были.
Z55
Уже несколько месяцев не могу войти по ssh, на один из своих vps. Блокируют именно протокол, т.к. другие сервисы на нём работают и доступны.