Se você puder dizer ao programa de caixa preta para ouvir apenas um endereço IP específico, poderá vinculá-lo a um endereço de loopback arbitrário, como 127.0.0.10, e usar netcat, AKA, nc
, para canalizar entre a porta em 127.0.0.10 e o que você quiser no IP externo.
Há um artigo sobre o Netcat na wikipedia com uma seção sobre proxy. Você vai querer entender isso e saber que a opção -u permite usar o UDP em vez do TCP padrão.
Neste exemplo, 192.168.200.200 é o IP externo, 12345 é a porta que você deseja que a caixa preta escute. 127.0.0.10 é o IP que você disse ao blackbox para usar e 987 é a porta que a caixa insiste rudemente no uso.
mkfifo backpipe
chmod {something sane backpipe}
nc -l -u 192.168.200.200 12345 0<backpipe | nc 127.0.0.10 987 1>backpipe
Se você não tem mkfifo
em seu sistema, pesquise no "canal mknod"