IIS 8.5 FTP – “501 Server cannot accept argument” in response to PORT command

ftpiisiis-8.5windows-server-2012-r2

I am running IIS 8.5 on Windows 2012 R2.

I created an FTP site to use port 8021 and when trying to connect using FileZilla (plain FTP), I get the error message "Connection timed out after 20 seconds of inactivity. Failed to retrieve directory listing". I am using Active mode in FileZilla, but in FileZilla connection window it shows that it automatically switches to Passive mode. Any idea why? Do I have to configure anything in IIS to not use Passive mode?

14:19:39    Status: Connecting to ip:8021...
14:19:40    Status: Connection established, waiting for welcome message...
14:19:41    Status: Logged in
14:19:41    Status: Retrieving directory listing...
14:20:02    Command:    PWD
14:20:02    Response:   257 "/" is current directory.
14:20:02    Command:    TYPE I
14:20:02    Response:   200 Type set to I.
14:20:02    Command:    PORT 10,0,1,16,5,64
14:20:02    Response:   501 Server cannot accept argument.
14:20:02    Command:    PASV
14:20:02    Response:   227 Entering Passive Mode (ip,250,68).
14:20:02    Command:    LIST
14:20:02    Response:   150 Opening BINARY mode data connection.
14:20:02    Error:  Connection timed out after 20 seconds of inactivity
14:20:02    Error:  Failed to retrieve directory listing

Thanks in advance.

Update: Tried Passive mode and still no luck,

09:27:20    Status: Connecting to ip:8021...
09:27:21    Status: Connection established, waiting for welcome message...
09:27:22    Status: Logged in
09:27:22    Status: Retrieving directory listing...
09:27:42    Command:    PWD
09:27:42    Response:   257 "/" is current directory.
09:27:42    Command:    TYPE I
09:27:42    Response:   200 Type set to I.
09:27:42    Command:    PASV
09:27:42    Response:   227 Entering Passive Mode (ip,193,17).
09:27:42    Command:    LIST
09:27:42    Response:   150 Opening BINARY mode data connection.
09:27:42    Error:  Connection timed out after 20 seconds of inactivity
09:27:42    Error:  Failed to retrieve directory listing

Update: Solved!
https://www.iis.net/learn/publish/using-the-ftp-service/configuring-ftp-firewall-settings-in-iis-7

Added port range to IIS FTP Firewall Support for server node and opened port range in external firewall to allow Passive Mode. Thanks Martin for pointing out

Best Answer

Your FTP client (FileZilla) sends a local network IP address in the PORT command. A remote FTP server cannot connect a local address in a different network.

You have to configure your client to report an external IP address. In FileZilla, go to Edit > Settings > Connection > FTP > Active mode > Active mode IP.

And you will have to configure your local firewall and/or NAT to allow/route the incoming connections. Actually it hardly makes sense. No one uses Active FTP mode these days, exactly for this reason.