Build a Home FTP Server with FileZilla
Posted by Gina Trapani at 1:00 AM on January 8, 2008

Upload and download files on your home PC from anywhere by turning it into a personal FTP server. With a home FTP server, you can upload and download files on your home hard drive from the office, your friend's house or to your laptop while you're on the road using any FTP client. Setting up an FTP server may sound like a complicated undertaking only system administrators can handle, but it's actually quite easy and free with open source software FileZilla. You've already heard of FileZilla's FTP client application, but the FileZilla project also offers a server application for Windows. Today we'll build an FTP server on your Windows PC with FileZilla for easy file transfers from any computer.
Note: Back in '05, guest poster Matt Haughey covered how to set up an FTP server using Serv-U FTP—which is a good piece of software, but the personal edition limits how many users can log into your server. We love our open source software, which is why we're taking a look at FileZilla, which has all the features, with none of the price tag or limits.
Install the FileZilla FTP Server
The FileZilla server installation is a regular Windows "just press Next" wizard, and for most users, the suggested default settings will work. However, let's take a look at its initial settings anyway, since they'll affect how you work with your server. Here's how to get FileZilla going:
- Download the FileZilla server application. Even though the FileZilla FTP client is available for multiple operating systems, the server app is Windows-only (and works for Windows XP, Vista and 2000.) Download it and kick off the installation wizard. As of writing, the latest server version is 0.9.25.
- Run the server as a Windows Service. First FileZilla will give you the option of how it should start up: as a Windows service or not, automatically or manually. Windows services are processes that run on your PC which you can manage from the Services management pane. There's more on how to manage that below, but at this point, running FileZilla as a Windows service that runs automatically is the default option. If you want your FTP server on by default, choose "Start as service, started automatically (default)" as shown. Otherwise, choose "Start as service, started manually."

In this pane you'll also set the port for the admin interface to use. By default it's 14147, and you're most likely safe leaving it at that. If you do change that port number, make a note of what it is—you'll need it to connect to the server later on.
- Set the server administrative interface to launch automatically (or not). On the final installation dialog, choose whether you want the server admin window to launch automatically when the current Windows user logs on, when any user logs on, or if it should be started manually.
- Run and connect to the server with the admin interface. As the installation wizard completes, set it to start the server admin interface. This is the window where you'll configure your server and monitor its activity. The first time you run the admin interface, it will ask you for the server's address and port. Since the server is running on your PC—the same one the admin interface is running on—its address is
localhost, or127.0.0.1. The default port is 14147 (or whatever you may have changed it to, as noted above), as shown:

If this is the only FTP server you'll be administering (most likely it is), check off the "Always connect to this server" box to bypass this dialog in the future.
Create Server Users
If all's gone well, your server's up and running—but no one can use it yet, since you haven't given anyone permission. To set up a server user, from the Edit menu choose Users. In the Users dialog on the right hand side, hit the Add button to create a new user and assign a password. Then, on the left side, select "Shared Folders" to set what folders that user will have access to on your server. Here I've created a user named gina and granted read access to the C:\data\ directory.

Notice you can fine-tune file access rights for each user: grant read-only rights (download only), write rights (to upload files), and whether or not the user can delete files or create directories, too.
If you want to grant several users access to your server all with the same rights and directory access, instead of creating each one individually, set up a user group. For example, if you're sharing your MP3 directory with friends, make a user group called "music fans" with access to the correct directory and add users to that group, which automatically gives them those rights. Then, if you move your music directory? You only have to edit the group, not each user in it. To manage user groups, from the Edit menu, choose Groups.
Log into the Server
Now that the server's up and running with users, it's time to log in and try uploading and downloading. Using any FTP client (like the FileZilla client or FireFTP for Firefox) enter the server address, user name and password.
- Server address If you're FTP'ing across your home network (like from your upstairs PC to your bedroom PC), you can reach the server by using it's internal network address (most likely something like
192.168.xx.xx.) From the command line, typeipconfigto see what that address is. If you want to log into your FTP server over the internet, set up a memorable URL for it and allow connections from outside your network. To so so, check out how to assign a domain name to your home server and how to access your home server behind a router and firewall. - User name and password This is one of the users you set up in FileZilla's admin interface, not the server admin user name. If friends, family, and co-workers will be logging into your FTP server, give them each a their specific username and password to log in (along with the server address.)
Use your FTP server to fetch files stored at home from anywhere, share files with friends and family, or back up files across your network. (Free backup software SyncBack supports backup over FTP. Here's more on how to use Syncback.)
A word about security: FTP is not a secure protocol; all the file transfers happen in the clear, which makes them ripe for sniffing. FileZilla does support encrypted FTP access, and we recommend using that or a VPN like Hamachi to secure file transfers over the internet. FileZilla's secure FTP server setup is beyond the scope of this article, but you can go into the server admin interface's settings area to configure it.
Starting and Stopping Your Server in Windows Services
Finally, to shut down or restart your FileZilla server running as a Windows service, from Control Panel, Administrative Tools, launch Services. Right-click on the FileZilla FTP Server item on the list to stop it, edit its Properties, or restart it, as shown.
Other home servers you can set up yourself include a home web server with Apache, a home SSH server with Cygwin and a home VNC server to remote control your computer.
How do you use the FTP servers in your life? Let us know in the comments.
Gina Trapani, the editor of Lifehacker, likes to FTP just about any time of the day. Her weekly feature, Geek to Live, appears every Tuesday on Lifehacker AU.

Comments (AU Comments · US Comments)
farhad
Posted November 13, 2008 6:36 PM
helo.im trying to connect 2 pc's with filezilla.both pc's have the client and server software installed.i can log onto pc1 to pc2 to tranfer files but when i try to log from pc2 to pc1 and tranfer files i cannot log into it.im doing it across lan behind a nat router.can you please help
voyagerfan5761
Posted 10:28 AM 7/1/08
Just a note on the intranet access: You can use the computer's name, too. For example, if your computer's internal name is foobar2000 (yes, a cliche), then you should be able to access it at ftp://foobar2000/
That's how I like to access my intranet HTTP server (http://gateway-86558bc/)
@englishman: Unfortunately, yes. I'd advise using a non-standard port for at least a little bit of security through obscurity. That won't solve anything, though; I'd probably just use a Linux box.
voyagerfan5761
englishman
Posted 10:07 AM 7/1/08
Warning: This will effectively punch a big hole in your network security.
englishman
5h17h34d
Posted 10:04 AM 7/1/08
FTP by it's nature is very insecure. To run it on your home personal machine were you have your personal information etc is just plain foolish.
5h17h34d
joelena
Posted 10:04 AM 7/1/08
I currently use the Hamachi method. I love the fact that my mapped network drives located on my desktop are available to my laptop whether I'm at home or somewhere else. Plus, I run VNC without having to worry about securing it myself.
Still, I would love to be able to access my desktop from any computer, but I've been just too scared to open a regular port. I tried about two years ago with openssh and putty, but I couldn't even get it working behind the firewall, much less through it. My fear was probably justified at the time, but I've learned tons since then, so I suppose it's probably time to try the Cygwin ssh method.
joelena
Fuzz
Posted 9:59 AM 7/1/08
I have had Filezilla running for over a year, and it works very well. Put an old Windows 200 box back into service for it.
Fuzz
shadypghguy
Posted 9:57 AM 7/1/08
When I initially set up my own FTP server I started out using the the server built into IIS on XP Pro but I switched to FileZilla a while back because it is incredibly easy to set up and and is a more powerful application. I need a server that I can access through a router and configuring the PASV settings to set which ports to use was a snap. I would highly recommend this application to anyone.
shadypghguy
AndyFromTucson
Posted 9:55 AM 7/1/08
If I didn't already have a linux server on my home network I would probably consider doing this since it sounds pretty straightforward and appears to have the option of setting it up so its secure. I wouldn't use the default port though, since it seems logical that hackers would try that.
If you have an always-on Linux box on your home network then you may want to consider installing openssh, then configuring it to listen on a non-standard port (the standard SSH port 22 often gets probed by hackers), setting up your firewall to forward that port, and then accessing files using WinSCP.
AndyFromTucson
monster79
Posted 9:46 AM 7/1/08
If you already have Cygwin (or even if you don't), running sshd as a Windows service is really easy to set up. Then use SFTP over SSH with the Filezilla client, and you're done. This is more secure than open FTP and in tandem with DDNS, it works great. Filezilla Server seemed like overkill when I tried it a while back.
monster79
daybringer
Posted 9:37 AM 7/1/08
I have always used freenas for my file serving needs and I would run Linux over windows for a server any day.
daybringer
ajax622
Posted 11:11 AM 7/1/08
So if you use Filezilla with SFTP, is it secure? Or will a port still be vulnerable?
ajax622
djxspike
Posted 10:51 AM 7/1/08
..about security. what if i'm just sharing music/movies with read-only access? no personal information.
djxspike
okcomputer
Posted 10:44 AM 7/1/08
I've got a funky problem with Filezilla Server. I've set it up on my pc, and I had it working. But somewhere along the line, it stopped working.
I only use it for internal transfers. I tried to access my PC from my Mac yesterday with Fetch, but it wouldn't work. I put the right IP address in, and the user and pass, and ensured the settings were right in FZ Server interface. But it can't connect. Nothing happens. :( Any thoughts?
Works awesome when it is working though.
okcomputer
muzee
Posted 10:34 AM 7/1/08
For those complaining about security - read the post fully:
" ... A word about security: FTP is not a secure protocol; all the file transfers happen in the clear, which makes them ripe for sniffing. FileZilla does support encrypted FTP access, and we recommend using that or a VPN like Hamachi to secure file transfers over the internet. FileZilla's secure FTP server setup is beyond the scope of this article ..."
before commenting.
I've used Filezilla Server extensively and can attest that it comes stacked with SFTP, SSH and SSH2. Plus, its so darn easy to configure ... and for the extra geeky type, all the configuration is stored in an XML file, so tweak away :)
muzee
cronick
Posted 10:30 AM 7/1/08
Or, buy an off-the-shelf Mac and click on the FTP sharing checkbox....
As opposed to clicking on the web, afp, smb, or ssh sharing checkboxes (unless you want web, afp, smb or ssh sharing instead of FTP).
LOL
cronick
glub
Posted 9:53 AM 7/1/08
If you already have an FTP server on your machine and you want to make it secure, you can look at Secure FTP Wrapper [wrapper.glub.com] It runs on all platforms and is pretty easy to setup.
glub
lm
Posted 6:29 PM 7/1/08
I got my FTP set up about a month ago, and installed (and signed up with) noip. Free, and I don't have to remember the IP address.
lm
jaxun
Posted 4:36 PM 7/1/08
Core's free SFTP standalone executable...
[www.coreftp.com]
Super easy to set up. Pick your port and target directory, set your port forwarding, and you have a secure ftp server. Sweetness!
jaxun
Gina
Posted 3:56 PM 7/1/08
@Shane: Port forwarding covered in the how to access your home server behind a router and firewall link in the article above. It was getting pretty long as it was!
Gina
Shane
Posted 3:14 PM 7/1/08
Am I missing something or did we skip port forwarding altogether?
[portforward.com]
What about the part that you explain the difference between passive and active ftp?
[www.slacksite.com]
Shane
John_T
Posted 3:09 PM 7/1/08
I've been using filezilla server for a year now. I had to figure out how to configure my firewall for the external ports I wanted open etc. I setup SSL/TLS FTP and have been using this for transfers. Daily I filter IP's of machines that try connecting to my server, but I've not once had my machine cracked (that I'm aware of) and it's XP no less! Not saying it won't happen but if you are using SSL FTP with a properly configured firewall, why is it a "big hole" in your security? I think SSL FTP is a reasonably secure method because the authentication and data channels are encrypted although it takes a little more configuring to get the whole PASV thing working but isn't that all enough. How is SSH better?
The other thing I wanted to mention is that if you are going to use straight FTP with no security the work around is to encrypt the files so even if someone did swipe your files, they'd be getting garbage data unless they were good enough to crack the encryption too. (of course you have bigger problems if someone with that kind of expertise is singling you out for special attention :-)
lastly can you route SSL FTP over a standard open port like 80. If I'm connected to a public hotspot and do a transfer, the extra ports needed for the SSL part won't be open and the connection won't work, so does a way exist to route the whole thing over 80 (or some other open port)?
John_T
summerblink
Posted 1:21 PM 7/1/08
@joelena: if you can use Hamachi, then you can use the Windows Remote Desktop Connection to connect to your computer - just use the Hamachi address of the computer you want to connect to. Make sure you have remote access enabled on that computer as well.
summerblink
cbandes
Posted 12:40 PM 7/1/08
Doesn't windows ship with an (s)ftp server like every other OS?
cbandes
patrickhannon86
Posted 11:50 AM 7/1/08
How do you setup Filezilla server with SFTP?
patrickhannon86
glub
Posted 7:57 PM 7/1/08
@John_T: FTP over SSL (ftps) is just as secure as HTTP over SSL (https). Other than having a way to secure your data, using ftps will also secure your identity (username/pass). It's great that your data can be made secure by encrypting the contents that go across the wire, but if your username and pass are in the clear, game over. So I wouldn't recommend your second option.
As for going through port 80, it is true you can make the control channel go through port 80, but generally it's a bad idea to put daemons on non-standard ports. It can lead to confusion. FTP is a two channel protocol so control is on one port and data is on a set of other ports. So without breaking the protocol there is no way to route both control and data on one port. If you require this, you will need something like SSH (sftp) or webdav.
glub
glub
Posted 7:49 PM 7/1/08
@Shane: Passive data transfer is when the client asks the server for a data port to connect to, where as active data transfer is when the client tells the server which port to connect to. When dealing with firewalls it is usually best to make a passive data connection rather than active.
glub
mig000
Posted 1:39 PM 7/1/08
@cbandes: It does! But, as usually, only in Windows versions where IIS is available, which does not include XP Home :(
mig000
falter
Posted 2:03 AM 8/1/08
is it possible to setup this ftp when using a dynamic IP address? (I use no-ip when using remote desktop)
falter
okcomputer
Posted 9:26 AM 8/1/08
@Falter. Yes, you can tell it where to find the external IP at all times.
okcomputer
okcomputer
Posted 9:38 AM 8/1/08
Sorry for the double/triple post, folks. The site gave me an error the first time, and the comment didn't show after I refreshed. But it sure showed up after I submitted the second one! :)
okcomputer
okcomputer
Posted 9:37 AM 8/1/08
@Falter: Yup, that option is available.
okcomputer
eroq
Posted 1:20 AM 9/1/08
@eroq:
Here's a link for No-IP
[www.no-ip.com]
eroq
eroq
Posted 1:14 AM 9/1/08
@lm:
??? Can you say that again? noip? Who's that? How do you hook us up?
Thanks
eroq