Saturday, October 22, 2011

Useful Software: freeFTPd - free and most secure sFTP Server available

FTP by itself is very insecure. Passwords are sent in plaintext over the internet; there is no encryption. You can set up FTP with an SSL certificate, but it can be complicated. This is where sFTP comes in. sFTP is FTP encryped with an SSH layer. freeFTPd is a free sFTP server. It's very easy to set up the server, set up users, view logs etc. Its a lot more secure than FTP. To give you an example of how much more secure it is, the strongest SSL certificate is 256 bits. With SSH you can go all the way up to 4096 bits!


freeFTPd is freeware and compatible with any Windows NT based system (eg. XP, Vista, 7, 2003, 2008). You can download it from

20-Jun-2014 03:20 AM - koehler
If you want FreeFTPd to work as a service, there are a few configurations that you will need to do:
1. In the services section of windows server, select FreeFTPservice. You can have this as automatic, but I set it to manual and ran a script to have it listen on port 22 for my sFTP server and save it as a .cmd file. This script will need to be loaded under the "recovery"/"run program" section. (it will start the program using this script!) (It does not matter when you save the file).
Here is the script:
@echo off
Set log="C:ftpstartup.log"
echo sleeping 30 seconds > %log%
sleep 30
echo starting service >> %log%
net start freeFTPDService >> %log%
echo looking for listener... >> %log%
for /F "tokens=2" %%i in ('netstat -a -n ^| findstr "^.*TCP.*:22.*LISTENING$"') do Set FTPPROC=%%i
IF "%FTPPROC%"=="" goto failed
echo Service listening on %FTPPROC% >> %log%
goto end

echo failed to start service... >> %log%

Set log=

2. Then you need to have the service run as your USER and not system. This is because if you run it as system, the service will not actually start when you boot up your computer (and if you configure the service, the system will not recognize it).
3. Every time you would like to make a configuration change, you will need to stop the service, make your changes then restart the service. If you do not stop the service, the changes will not be saved.

These are the three things I noticed when setting up my FreeFTP server. It is really easy to set up and it is a Free sFTP server (the only one that is not command line based :D) Users can be added in less the 10 seconds, and even with these configurations, only 10 minutes to set up. I recommend it to anyone who would like to try it! :D

20-Jun-2014 03:20 AM - Joel Ferreira
I have been fighting with this also trying to run as a service.

The issue is that two separate program instances open, and then their settings get screwed up.

When the program is ran as a service it looks here for config:
C:Program FilesfreeFTPdfreeFTPdservice.cfg

When you open the GUI as a USER and hit Save & Apply... your config goes to your /users/ folder i.e. here:
C:UsersjferreiraAppDataLocalVirtualStoreProgram FilesfreeFTPdfreeFTPdservice.cfg

Service tries to start... uses the WRONG cfg file and it never works.

Open the GUI... save you settings... go find the config file in your /users/ directory (you may have to search for it).

Copy this file into C:Program FilesfreeFTPd and restart. It will work !!!

I think this has something to do with a Server 20032008 environment.
20-Jun-2014 03:20 AM - Classified008
Joel, I am using this in Windows Server 2008. You fix worked perfectly! Thank you.
20-Jun-2014 03:20 AM - Chris Goelz
Thank you Joel for your fix!

This approach will require you to copy the .cfg file each time you change the configuration. Alternatively you can run the client GUI as administrator, which will write your changes to the same location the service uses (C:Program Files (x86)freeFTPd)freeFTPdservice.cfg) so that you don't need to copy the file.

Stop the freeFTPdService.

Run the FreeFTPd GUI AS Administrator.

Click the FreeFTPd taskbar icon and make your configuration changes.

Apply & save your changes.

Right click the taskbar icon and Quit.

Restart the freeFTPdService.
20-Jun-2014 03:20 AM - Aaron
Can any one please explain how to setup FTP with SSL certificate.

Thank you much appreciated.
20-Jun-2014 03:20 AM - tmuceng
I've been using this app for years, and I also struggled with this for a bit. But, here is what I've done to make it work as a service and run without any active user profiles logged into the server. If you run the app/process under your logged in username, when you log out, the process is killed and thus you cannot connect to the (s)ftp services.

When installing the app, select to run as service. After configuring the application settings the way you want, such as user, directories, etc, Apply & Save. Close the GUI window, then open task manager and kill the PID for FreeFTPdService.exe*32. Then go to your services control panel and start the freeFTPdService. It will run as the Local Admin account without issues. Set the service to start automatically. The PID us running as SYSTEM. Windows 2008 R2 SP1.
20-Jun-2014 03:20 AM - Rick
W2K3x64 R2 server with freeFTPd version 1.0.11

Have tried all the suggestions, but still cannot ftp to the server without having a user logged in.
20-Jun-2014 03:20 AM - darrell
have the same issue on windows 2003 server.

I tried Chris' solution and it does not work for me.

I want to try joel's, but I don't see freeFTPdservice.cfg in the AppData path. it's in the C:Program FilesfreeFTPdfreeFTP folder.

Please help?
20-Jun-2014 03:20 AM - Jonathan Shapiro
After running Windows FTP for years, I had a demand to make certain accounts SFTP. I thought I'd try to combine SFTP with regular Windows FTP by using a tool like freeFTPd. Seems to be able to work with Windows accounts. I'd like to take it to the next level by scripting the creation of user accounts (as I currently do in Windows), but the GUI settings application seems to put everything into a binary CFG file that I can't really easily write to.

Is there a way to do this? Or should I consider another product? If so, any suggestion?
14-Nov-2014 11:53 PM - Helen Chong
great, thank you guys, I flight with this issue for a while, and FreeFTPd is running as Windows service and working well now, wondering
10-Dec-2014 01:14 PM - Mike Schreiner
I had the exact same problem. I log in, and right click and run as administrator. I am able to set up the users, etc, then click on apply and save. If you run it as administrator you can then write to your config file.
I would then log off and i wouldn't be able to connect to the sftp server. After looking at the above workaround, it worked perfectly.
I did the following- changed service to a local admin account to log in the freeftpd service. I made my changes that i needed to, then clicked apply and save. then i exited. Then, i killed the process in task manager, and logged out.
it worked! thanks for the tip!!!
22-Feb-2015 03:32 PM - Opus600
I had the same problem getting the service to work when no user was logged in. While trying many of the fixes suggest here and on other sites, I found something that works for my setup. I am running Windows Server 2008R2.

The service starts using the last saved config from the GUI. That includes whether the services are started or not. Remember, the GUI does not see that the Windows service is running and will come up with both listeners in a stopped state. From what I can tell, if you save the config with either in the Stopped state the restart the Windows service, it will start them in the SAME state they were in when you saved the config.

All I had to do to fix the problem was this:
1) Open the GUI, make changes, then MAKE SURE THE SERVERS ARE STARTED.
2) AFTER servers are started, hit the Apply button in the GUI several times. (For some reason, if I hit it only once, it didn't appear to save every time.)
3) Close the GUI and find the icon in the tray and make sure you quit out of it also.
4) Restart the Windows service.

To test it, open a command window and enter netstat -an. Look for the server listening on port 22. If you do this before the steps above, nothing is listening on port 22. After the above steps, I see it listening on port 22.

I can log off and it still works. I also did a reboot of the server and it came up in the listening state.

This worked for me, but from the comments I've read, every Windows Server edition seems to be different.

Hopefully, this will help others that have pulled their hair out looking for a fix like me!
11-Jun-2015 05:39 PM - Twan
Hi Opus,

Same problem for me, but you tip works graet. I seems you must make changes and service are running. Then hit the apply button more times. Restart service and log out. sFTP still working:-)
28-Aug-2015 01:08 AM - Robert
I'm having this problem in Windows 2012 Server. I've tried all of the above, and it all works until I reboot the server. freeFTPd comes up as a service all right, but whatever changes I made in the GUI are lost. I'm seeing the changes made in the GUI going to c:\Program Files\freeFTPdserver\freeFTPserver.cfg, not to the user directory. Where is the service picking up the configuration file?
02-Aug-2016 03:30 AM - SAMUEL CHEN
I use Chris Goelz's suggestion, it works.
1.Login as administrator, so that the config file will be saved the same location as service uses.
2.Open GUI, make the changes I need, including start SFTP. (I want the SFTP is started automatically when computer is restarted.)
3.Press "Apply & Save"
4.Then check the config file under c:\program files(x86)\freeFTPd\, its modified time is just now.
5.Restart the computer to verify if the service is started according to the config file. It works~~
THANK YOU Chris Goelz.

Captcha Image

Recent Posts



    Sign up for Product Updates and Discounts
    Captcha Image