Everything else is configured. When I turn the firewall off, it connects. When I turn it on, it doesn't. I've added inbound and outbound rules, opening port 21 for all programs and services, but it's not good enough. Why??
FTP uses 2 channels for communication, ftp-data (20) and the ftp control channel (21). Depending on how you have it configured, active or passive, it will require a different configuration.
Windows makes things easier due to the fact that you can allow certain executables instead of specific ports. You can choose to allow the FTP server executable, or put the server into passive mode and allow ports 20 and 21.