Существующие решения TCP Relay [закрыто]

У меня есть сценарий, который требует использования TCP Relay. Прежде чем я приступил к написанию чего-то нестандартного, я хотел узнать, знает ли кто-нибудь о существующем программном обеспечении, которое может сделать это за меня.

У меня есть 2 устройства в разных сетях, которые не могут подключиться друг к другу. Назовем их сетями A и B. Эти устройства должны обмениваться данными, и они могут делать это через реле-посредник в сети C. A может подключаться к C, а B может подключаться к C. C не может подключаться ни к A, ни к B. .

A -> C <- B

Идея заключается в следующем:

  1. A устанавливает TCP-соединение с C и просто ждет
  2. B устанавливает TCP-соединение с C, когда ему требуется что-то от A.
  3. C считывает данные с B и отвечает им на уже открытое соединение от A.
  4. A обрабатывает данные и отвечает на C, который передает их B.

Есть ли существующий инструмент, который может это сделать?

4
задан 8 October 2014 в 21:43
1 ответ

Если ваша ретрансляторная машина работает под управлением Linux или любой UNIX-подобной ОС, вы можете использовать socat (http://www.dest-unreach.org/socat/, он включен в качестве пакета во многие дистрибутивы Linux). В простейшем виде вы можете запустить ретранслятор с чем-то вроде:

socat TCP4-LISTEN:12345 TCP4-LISTEN:54321

(где 12345 и 54321 - это порты, на которых сервер прослушивает каждое соединение). Один из клиентов соединяет один порт, другой - другой, и затем происходит обмен данными в обоих направлениях. Если одна машина посылает данные до подключения другой, они буферизируются и посылаются после подключения.

См. также здесь: socat connect - соединить "прокси" два входящих TCP-соединения, чтобы разоблачить службу межсетевого экрана?.

.
2
ответ дан 3 December 2019 в 03:57

Теги

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