Соединение двух узлов, динамические tcp-соединения, туннелирующие через центральный сервер

Концептуальная система того, что я ищу:

Даны два хоста (могут быть шт) !
Оба могут быть в динамической сети (динамический ip)!
Оба подключаются к одному центральному серверу, чтобы найти друг друга! (в моем случае нужно! Один клиентский хост может действовать как сервер тоже)
Сервер действует как мост! И обеспечивает туннелирование!
Первый хост подключается к серверу! И второй тоже! Теперь сервер отображает оба узла (хоста)!
И делает пересылку (туннелирование)!
Каждый раз, когда первый узел посылает что-то второму узлу, оно попадает на центральный сервер! Через что-то вроде веб-сокета! Затем сервер отправляет это второму узлу! Второй хост отвечает! Или что угодно! Сервер обрабатывает мосты и туннелирование двумя способами!

Свойства здесь:

  • узлы могут соединяться динамически! Без настройки сетей или динамических dns ... Так же, как это делает teamviewer или anydesk!
  • tcp соединения туннелируются и перенаправляются!
  • Два узла соединяются и могут работать как один узел!

Для возобновления: pc1, pc2 => соедините pc1 с pc2 без необходимости знать ip адреса друг друга! Все динамически! Прямое туннелирование!

Как это сделать?

После изучения различных вещей! Я просто подумал, что самый простой способ - это реализовать что-то подобное самому! так как я могу представить, как я могу это сделать!

Мне это было нужно! При попытке запустить эмулятор Android на AWS EC2! И для переадресации adb на удаленный эмулятор!

Я не спрашиваю о решении проблемы с андроидом! А скорее о системе выше! Мне интересно, есть ли уже что-то, что делает то, что я описал!

Иначе это займет у меня некоторое время!

Для решения, которое пришло мне в голову! Я рассматриваю центральный сервер websocket! И туннелирование tcp через ws!

Как бы назвать такую систему?

И какие есть все возможные способы достижения этого! Как бы вы это сделали?

Некоторые другие способы, а также система aboce, которую я нашел

Для систем или проблем, где вы можете думать о вышеупомянутом! Как, например, в случае с удаленной отладкой Android!

Можно подумать о:

Ssh обратное туннелирование => требуется статический конец! Например, сервер в моем случае! Экземпляр сервера должен иметь работающий ssh! В AWS это требует некоторой работы по настройке рабочего агента! Не всегда все просто!

Динамический DNS => Необходим проброс портов! Для некоторых это может оказаться сложной задачей! Возможные риски безопасности

Для тех, кто может их упомянуть! Я спрашиваю только о концептуальной системе, упомянутой выше!

То, что я сам упомянул концептуально! Это была бы самая простая в обращении вещь и система! Никаких сложных настроек! Просто настроить один сервер! И все пойдет гладко и динамично по дизайну! Даже для не продвинутых пользователей! Например, для других разработчиков в той же команде или организации! Так же как teamviewer и anydesk и многие другие системы уже работают!

0
задан 24 July 2021 в 20:14
1 ответ

Не будет ли что-то вроде openvpn в качестве решения вашей проблемы излишеством? Openvpn делает все, что вы хотите, но также шифрует сетевой трафик. Это шифрование добавляет некоторую сложность в конфигурацию.

1
ответ дан 28 July 2021 в 14:06

Теги

Похожие вопросы