Why does FTP hang when getting a directory listing or downloading a file?
This is due to the fact that a router or firewall between ftp-gw and the remote FTP server is blocking the returning PORT command. FTP uses two connections – a control connection (made to port 21 on the target host) and a data connection. The data connnection uses a random port; what port number gets used is up to your operating system. Check to see where that connection is dropped.