W ogólności serwer FTP nie nadaje się do przebywania za NATem.
FTP ma dwa tryby pracy:
Active - łączysz się do serwera FTP na port 21 (tzw. kanał kontrolny), przy przesyłaniu plików w dowolną stronę wysyłasz do serwera komendę PORT zawierającą adres i port na którym TY słuchasz a serwer tam "oddzwania". Po zestawieniu tego połączenia (kanał danych) dane są przesyłane w odpowiednią stronę. Zalety - serwer musi wystawić w internet tylko jeden port (TCP/21). Wady - lipa jak klient jest za własnym NATem (FTP--NAT---WAN---NAT--Klient), bo wtedy klient pokaże w "PORT" swój adres prywatny a serwer nie będzie się w stanie tam połączyć. Pomocą jest tzw "helper NAT" działający na nacie u klienta i podmieniający prywatne adresy w poleceniu PORT na swój adres publiczny i robiąc tymczasowe połączenie zwrotne dla serwera oddzwaniającego do klienta.
Passive - tak jak poprzednio łączysz się do serwera FTP na port 21, przy przesyłaniu plików w dowolną stronę wysyłasz do serwera komendę PASV na którą serwer losuje u siebie port i odsyła klientowi dane gdzie klient ma się połączyć z kanałem danych. Działa świetnie, gdy klient jest za NAT (bo oba połączenia są klient->serwer) ale się sypie gdy to serwer jest za NATem. Są tu dwa rozwiązania: pierwsze - w serwerach FTP możesz ustalić zakres portów z których losowana jest odpowiedź na PASV oraz wymuszasz adres na zewnętrzny (a nie samego serwera). Szacujesz, ile maksymalnie transferów plików może odbywać się równocześnie (polecenie LS też potrzebuje kanału danych) i rezerwujesz tyle portów (np od X do Y) i wszystkie te porty przekierowujesz na serwer (oczywiśnie 21 też). drugie - helper FTP działa w dwie strony: użyty na nacie za którym jest serwer przechwytuje odpowiedź serwera na PASV (z prywatnym adresem serwera i portem wylosowanym przez serwer), podmienia to na swój publiczny adres i jakiś swój wolny, wylosowany port i robi dynamiczne, tymczasowe przekierowanie z "podłożonego" portu do serwera.
Najbardziej elastycznym rozwiązaniem jest transfer PASV (teraz właściwie default wszystkich klientów FTP) oraz zainstalowany na nacie przed serwerem helper FTP (wystarczy załadować moduł przez modprobe ip_conntrack_ftp).
HTH.