Você pode usar socat para isso. Existe uma porta do Windows baseada no Cygwin.
A seção exemplos tem essa
socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \
TCP4:www.domain.org:80,bind=myaddr2
TCP port forwarder, each side bound to another local IP address (bind). This example handles an almost arbitrary number of parallel or consecutive connections by fork'ing a new process after each accept() . It provides a little security by su'ing to user nobody after forking; it only permits connections from the private 10 network (range); due to reuseaddr, it allows immediate restart after master process's termination, even if some child sockets are not completely shut down. With -lmlocal2, socat logs to stderr until successfully reaching the accept loop. Further logging is directed to syslog with facility local2.
Embora este exemplo seja para a porta 80 (HTTP), você pode usar o socat para criar um relé bidirecional para praticamente qualquer protocolo.
Você notará que é uma origem Linux / Unix. Não sei o quão bem A porta do Windows funciona no Windows ou se algumas das opções são inadequadas para o Windows. Eu tentaria.
Para um sistema de produção, eu tentaria
- obtendo o MySQL para escutar em múltiplos números de porta (atualmente não é possível)
- usa tradução de porta em um roteador?
- Usando o socat em uma caixa do Linux para retransmitir com a tradução de porta. E TESTE PARA DESTRUIÇÃO.
(Ick)