С 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 (но требующие привилегий суперпользователя), чтобы сервер мог определить, кто является клиентом.