Концептуальная система того, что я ищу:
Даны два хоста (могут быть шт) !
Оба могут быть в динамической сети (динамический ip)!
Оба подключаются к одному центральному серверу, чтобы найти друг друга! (в моем случае нужно! Один клиентский хост может действовать как сервер тоже)
Сервер действует как мост! И обеспечивает туннелирование!
Первый хост подключается к серверу! И второй тоже! Теперь сервер отображает оба узла (хоста)!
И делает пересылку (туннелирование)!
Каждый раз, когда первый узел посылает что-то второму узлу, оно попадает на центральный сервер! Через что-то вроде веб-сокета! Затем сервер отправляет это второму узлу! Второй хост отвечает! Или что угодно! Сервер обрабатывает мосты и туннелирование двумя способами!
Свойства здесь:
Для возобновления: pc1, pc2 => соедините pc1 с pc2 без необходимости знать ip адреса друг друга! Все динамически! Прямое туннелирование!
Как это сделать?
После изучения различных вещей! Я просто подумал, что самый простой способ - это реализовать что-то подобное самому! так как я могу представить, как я могу это сделать!
Мне это было нужно! При попытке запустить эмулятор Android на AWS EC2! И для переадресации adb на удаленный эмулятор!
Я не спрашиваю о решении проблемы с андроидом! А скорее о системе выше! Мне интересно, есть ли уже что-то, что делает то, что я описал!
Иначе это займет у меня некоторое время!
Для решения, которое пришло мне в голову! Я рассматриваю центральный сервер websocket! И туннелирование tcp через ws!
Как бы назвать такую систему?
И какие есть все возможные способы достижения этого! Как бы вы это сделали?
Для систем или проблем, где вы можете думать о вышеупомянутом! Как, например, в случае с удаленной отладкой Android!
Можно подумать о:
Ssh обратное туннелирование => требуется статический конец! Например, сервер в моем случае! Экземпляр сервера должен иметь работающий ssh! В AWS это требует некоторой работы по настройке рабочего агента! Не всегда все просто!
Динамический DNS => Необходим проброс портов! Для некоторых это может оказаться сложной задачей! Возможные риски безопасности
Для тех, кто может их упомянуть! Я спрашиваю только о концептуальной системе, упомянутой выше!
То, что я сам упомянул концептуально! Это была бы самая простая в обращении вещь и система! Никаких сложных настроек! Просто настроить один сервер! И все пойдет гладко и динамично по дизайну! Даже для не продвинутых пользователей! Например, для других разработчиков в той же команде или организации! Так же как teamviewer и anydesk и многие другие системы уже работают!
Не будет ли что-то вроде openvpn в качестве решения вашей проблемы излишеством? Openvpn делает все, что вы хотите, но также шифрует сетевой трафик. Это шифрование добавляет некоторую сложность в конфигурацию.