Интересно достаточно первый вопрос, который я когда-либо задавал на этом сайте, оказалось, имел ответ, который Вы могли бы найти полезным.
Подводя итоги, файл /etc/gai.conf
используется getaddrinfo () системный вызов, чтобы определить, как ответить. Для Вашего особого случая, добавляя
precedence ::ffff:0:0/96 100
в конец файла конфигурации должно быть достаточным.
Эти команды должны выполняться, когда сервер, который вы хотите отслеживать, в настоящее время прослушивает / 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.вместо оригинала
.