Si ce n'était que de l'écoute, ce serait simple. C'est beaucoup plus difficile parce qu'il faut corriger l'adresse de socket (IP et port) : il faut changer "PORT 192,168,a,b,x,y" en "PORT mon.adresse.Internet,u,v".
Après quelques expérimentations sur la gestion du FTP client derrière une Freebox v5 en mode routeur, il s'avère que :
la Freebox laisse passer tel quel tout segment TCP du client vers le serveur FTP,
sauf si les données TCP commencent une suite de lettres qui est un
préfixe de "
PORT" ou de "
EPTR" (insensible à la casse)
à l'exception de la toute première commande FTP, qui elle passe toujours directement.
Concernant les segment TCP envoyé par le PC derrière la Freebox contenant juste "p", "po", "por", "port", "e", "ep", "epr", "eprt" : ces segments ne sont pas transmis par la Freebox. En fait la Freebox attend d'avoir une commande PORT ou EPRT complète avant de la transmettre.
La Freebox perd ces données incomplètes, ce qui provoque une retransmission TCP.
En entrant une commande PORT ou EPRT mal-formée avec telnet, on peut mettre en vrac l'entrée NAT, qui ne transmet plus rien, jusqu'à ce que le client abandonne (RST du client).