I am trying to set up a local FTP server in my house. Whenever I connect to the account on the computer that hosts the server, everything works, but when I try connecting on another computer, the directory listing fails even though the account connection is successful. I have allowed port 21 TCP and UDP through the host’s firewall and have added FileZilla Server to the list of programs allowed to communicate. How can I solve this?
While this question is old, there’s no really comprehensive answer. So I’m adding one.
In the passive FTP mode (the most common mode nowadays), the FTP server listens on port 21 for an FTP control connection. But for all data transfers, including directory listings, it listens on an additional port. The port is picked out of a configured port range.
If you open only the 21 control port on the firewall, you get the described behavior. You can connect, but you cannot list directories or transfer files.
For details, see my article on Network configuration for passive FTP mode.
You have to go to Control Panel > System and Security > Windows Firewall > Advanced Settings > Inbound Rules > New Rule and add a new inbound rule for data port range your FTP server is using.
The port range that the FileZilla FTP server is using, is configured in Edit > Settings > Passive mode settings > Use custom port rage. You can configure a narrow range (like 10 ports), to limit a number of opened ports. You should use port numbers 1024 and above (up to 65535).
FTP needds more than port 21 (and it does not need UDP). The ports for the data connections are dynamic. If the server is behind a firewall you should try active FTP mode, if the client is behind firewall you should try passive mode. If both are behind restrictive firewalls which are not able FTP as a special protocol you are out of luck.
Try changing the Transfer mode to “Active”.
To address this FTP error, follow below steps:
- Open Filezilla, go to Edit -> Settings
- Click on Connection -> FTP: Choose Active
- Click on Connection -> FTP -> Active Mode: Select “Ask your operating system for the external IP address”
Click on Connection -> FTP -> Passive Mode: Choose Fall Back to Active Mode
Follow steps in url: FTP error “Failed to retrieve directory listing”
It turns out that it was not working because I did not have a range of ports set for the directory listing to pass through. Now that I have configured it, everything is working smoothly.