Назад | Перейти на главную страницу

пересылка пакетов socat udp с адресом источника

Я пытаюсь использовать socat (вместо iptables) для переадресации портов UDP. Мне просто нужно перенаправить некоторый трафик с UDP-порта 162 на 33162.

Я использую что-то вроде этого: socat udp-listen:162,pktinfo,fork UDP:localhost:33162

Проблема в том, что в приложении, которое прослушивает порт 33162 в качестве адреса источника, я вижу 127.0.0.1, что нежелательно. Я хочу, чтобы трафик сохранил свой исходный адрес.

Возможно ли это с помощью socat?

Socat - это прокси-сервер, что означает, что он устанавливает соединения с портом / службой и т. Д. От имени чего-то еще. Это означает, что с точки зрения вашего сервиса соединение исходит от socat. В общем, нет простого способа обойти это поведение.

В Linux есть поддержка «прозрачного прокси», но для этого требуется явная поддержка в вашем прокси-приложении, и быстрый поиск не выявил ничего, что могло бы работать с трафиком UDP.

Использование iptables для перенаправления трафика обеспечило бы более чистое решение.