Перенаправление трафика TCP к домену UNIX снабжает сокетом в соответствии с Linux

Примите приложение Linux прежней версии, слушающее на сокете домена UNIX /tmp/foo.

В дополнение к общению с этим унаследованным приложением по домену UNIX снабжают сокетом механизм, который я хочу быть в состоянии подключить к нему через соединение TCP на порте, говорит 1234.

Что самый легкий путь состоит в том, чтобы связать с портом TCP 1234 и затем перенаправить все входящие соединения с сокетом домена UNIX /tmp/foo?

37
задан knorv 27 January 2010 в 19:01
поделиться

4 ответа

Оказывается SOCAT SOCAT может использоваться для достижения этого:

socat TCP-LISTEN:1234,reuseaddr,fork UNIX-CLIENT:/tmp/foo

и с небольшим количеством добавленной безопасности:

socat TCP-LISTEN:1234,bind=127.0.0.1,reuseaddr,fork,su=nobody,range=127.0.0.0/8 UNIX-CLIENT:/tmp/foo

Эти примеры были проверены и работают, как ожидалось.

56
ответ дан 27 November 2019 в 04:28
поделиться

Простые? Вероятно, Netcat (aka nc ):

nc -l 1234 | nc -U /tmp/foo

Первая команда прослушивает в порту 1234 для входящих соединений, а также трубы полученные данные ко второй команде. Второй соединяется с розеткой домена UNIX / TMP / FOO и записывает свой вход в этот розетку. Обратите внимание, что это примет только одно соединение, и выходит, как только это соединение отброшено. Если вы хотите продолжать слушать больше подключений, используйте опцию -k :

nc -lk 1234 | nc -U /tmp/foo

Вы можете проверить, что это работает, настроив слушателя для этого сокета в одном терминале:

nc -lUk /tmp/foo

и запись Это в другом:

nc localhost 1234

SOCAT , как , рекомендованный Knorv , более способен, но более сложный для использования.

21
ответ дан 27 November 2019 в 04:28
поделиться

Не пробовал: но похоже, что «Lighttpd» может сделать это для вас:

http://redmine.lightttpd.net/wiki/lighttpd/docs:modproxycore

0
ответ дан 27 November 2019 в 04:28
поделиться

Вы должны быть в состоянии привязать к TCP 1234, получите сокет FD для / TMP / FO и используйте вызов «Слушать» для данных как на 1234, так и / TMP / FO. Любые данные, написанные на 1234, вы перезапишите / TMP / Foo и Vice-Versa.

Теперь вы действуете как прокси и передача данных взад и вперед.

И вот веб-страница, которая может помочь: http://osr507doc.sco.com/en/netguide/dusockc.io_multiplexing.html

3
ответ дан 27 November 2019 в 04:28
поделиться
Другие вопросы по тегам:

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