Как делает перемещение сокета домена Unix, позволяют socat контролировать трафик?

Интересно достаточно первый вопрос, который я когда-либо задавал на этом сайте, оказалось, имел ответ, который Вы могли бы найти полезным.

Подводя итоги, файл /etc/gai.conf используется getaddrinfo () системный вызов, чтобы определить, как ответить. Для Вашего особого случая, добавляя

precedence ::ffff:0:0/96  100

в конец файла конфигурации должно быть достаточным.

12
21.11.2014, 14:32
1 ответ

Эти команды должны выполняться, когда сервер, который вы хотите отслеживать, в настоящее время прослушивает / path / to / sock . Затем, если вы переименуете / path / to / sock , сервер не пострадает.

Команда socat вставляет человека посередине. Он прослушивает / path / to / socks и направляет весь трафик клиентов на /path/to/socks.original (и регистрирует его в процессе с помощью - v ).

Это работает только для сокетов типа stream (используйте UNIX-RECVFROM / UNIX-RECV для датаграммы сокетов) и только если клиенты просто читают / пишут / отправляют / восстанавливают на этих сокетах, а не sendmsg () с вспомогательными данными и прочими причудливыми вещами.

lsof будет сообщать только о процессах прослушивания ( socat и сервер для прослушивающих и принятых сокетов). Обычно невозможно связать подключенный сокет на клиенте с путем к сокету.

Если вы сделаете это до запуска сервера, это не сработает, поскольку сервер попытается прослушать на / path / to / socks и потерпит неудачу, поскольку socat уже прослушивает это. Или вам нужно указать серверу прослушивать / path / to / sock.вместо оригинала .

11
27.01.2020, 19:56

Теги

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