FTP uses one TCP connection for control (such as login, changing directory, selecting the file to transfer), and another TCP connection for transferring data (including directory listings).
So there are two issues here.
1. If you cannot even establish the control connection, then there's a problem with forwarding of the ftp control port (21). This is where the CGN is one possible problem, of many.
2. If you are able to login to the FTP server, but not get a file listing, then the control port is OK but the data ports are not. It then gets more complicated because FTP has two modes, 'active' and 'passive'. 'Passive' is what you want here. The FTP server will allocate a second port from a range, and then wait for another incoming connection from the client.
You will need to configure your FTP server to use a fixed range of data ports (let's say 10000-10999) and also configure your router to port-forward all those ports. Or some routers have a concept of a "DMZ host" which forwards *all* ports to that host.
Given the complexities of FTP, it would be better if you could run an SFTP server instead of an FTP server. With SFTP you only need to forward one port (22). Plus, SFTP is encrypted so people can't sniff your password.
When choosing software, beware: SFTP is not the same as FTPS. FTPS is just normal FTP over SSL, so has the same port problems as normal FTP.
I never touch Windows, so I'm afraid I can't recommend SFTP software for Windows.



Pages in this thread:
Print Thread
