С socat
на сервере:
socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000
По умолчанию socat
будет прослушивать TCP-порт 8001 на любом IPv4 или IPv6-адресе (если поддерживается) на машине. Вы можете ограничить его IPv4 / 6, заменив tcp-listen
на tcp4-listen
или tcp6-listen
, или указав локальный адрес, добавив a ,bind=that-address
.
То же самое для соединительного сокета, к которому вы используете прокси, вы можете использовать любой адрес вместо localhost
и заменить tcp
на tcp4
или, tcp6
если вы хотите ограничить разрешение адресов адресами IPv4 или IPv6.
Обратите внимание, что для сервера, прослушивающего порт 8000, соединение будет выглядеть как исходящее от прокси-сервера (в случае localhost
, если оно будет localhost
), а не от исходного клиента. Вам нужно будет использовать подходы DNAT (но требующие привилегий суперпользователя), чтобы сервер мог определить, кто является клиентом.