the built in command line ftp client in server 2008 does not support passive mode

so I've used these commands to allow outbound ftp (it stalls without this)

1) Open port 21 on the firewall

netsh advfirewall firewall add rule name="FTP (no SSL)" action=allow protocol=TCP dir=in localport=21

2) Activate firewall application filter for FTP (aka Stateful FTP) that will dynamically open ports for data connections

netsh advfirewall set global StatefulFtp enable

however in server 2008 r2, these commands seem to work, but it does not affect the outbound ftp, it stalls

I do not want to use an alt client


Instead of using the netsh command you could have Windows adding the firewall rules by enabling notification in the "Windows Firewall with Advanced Security" console.

Click on "Windows Firewall Properties" on the root object "Windows Firewall with Advanced Security on Local Computer". From there you customize the settings on each of the profile tabs Domain, Private and Public and set "Display a notification" to "Yes".

When this is done fire up your FTP client and connect to your FTP server. Now you'll be prompted if you want to add a rule for your ftp program.

Good Luck!


  • awesome, i didnt know you could do that, i'll try it out – Scott Kramer Sep 14 '09 at 18:00

R2 was giving me problems with the FTP Client as well. My solution was to create a rule for the application:

1)netsh advfirewall firewall add rule name="Permit FTP Client" dir=in action=allow enable=yes profile=any program=%SystemRoot%\System32\ftp.exe

2) I also enabled statefulftp: netsh advfirewall set global statefulftp enable

Not the answer you're looking for? Browse other questions tagged or ask your own question.