If you’re setting a new server based Linux server and you want to have an FTP server which is located behind a firewall or some kind of routerI’ve myself experienced this on Debian Lenny powered server.
The exact kernel of the server is as follow:
Linux debian 2.6.26-2-amd64 #1 SMP Thu Sep 16 15:56:38 UTC 2010 x86_64 GNU/Linux
Until some time ago, everytime I experienced this kind of problem on a Linux router the fix was done through loading the kernel module ip_conntrack_ftp,however this kind of fix is no longer working for some reasons I’m not completely aware.
The Linux kernel has adopted a new kernel module:
Which until some time apparently takes care for the connection tracking of passive FTP connections.
Therefore to currently to enable the passive FTP connections to your FTP daemon on Linux you need to load and enable the nf_conntrack_ftp
debian:~# echo nf_conntrack_ftp >> /etc/modules
debian:~# modprobe nf_conntrack_ftp
Now your FTP passive connections should work fine.