Оберните скрипт слушателя tcp, чтобы вместо него использовался файл sock

У меня есть программа, когда она запускается, и начинает вывод списка на порт 12345.

$ ./cool_script.pl

. Мой администратор Linux говорит, что он запрещает открывать порты. Он говорит, что мне разрешено использовать ~ / cool_script.sock (сокет домена unix) для общения. По-видимому, его сервер nginx может читать и записывать данные на носок, как если бы это был порт TCP.

В любом случае, есть ли способ обернуть исполняемый файл (./cool_script.pl) так, чтобы его попытка открыть прослушивающий порт была перенаправлена ​​в файл .sock.

Что я пробовал: прочитайте документацию для socat

1
задан 29 December 2017 в 16:50

2 ответа

Этот пример вам подходит: https://coderwall.com/p/c3wyzq/forwarding-tcp-traffic-to-a-unix-socket

В основном:

Forwarding port 15432 to socket /srv/mongodb-27017.sock:

socat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock
0
ответ дан 29 December 2017 в 16:50

Вам нужно будет изменить работу программы. Заставьте его слушать Unix-сокет вместо TCP. Предполагая, что программа динамически связана со стандартной библиотекой (практически все программы), вам не нужно изменять саму программу, просто способ ее запуска. Вы можете сделать это с помощью LD_PRELOAD , загрузив оболочку для функции открытия сокета TCP, которая вместо этого открывает сокет Unix. ttu делает именно это (согласно его документации, я никогда не использовал это).

0
ответ дан 29 December 2017 в 16:50

Другие вопросы по тегам:

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