Ever wanted to share music, video or large data files with your friends quickly but didn’t want to spend too much time uploading them first? There are many online services that allow you to share files with others easily, but it still requires you to actually upload the file first.
A faster way to share files is to simply turn your computer into an FTP server so users can connect remotely and download files. Windows has a built-in feature for setting up an FTP server in the Professional and Ultimate editions, but it requires quite a bit of technical knowledge to work. Fortunately, there are a number of open source programs that streamline the process considerably, leaving you with only a few things to configure yourself.
In this article, I will introduce you to some open source file server applications that you can use to set up your own FTP server. I will also talk about the additional steps you need to take, like configuring the router and firewall, for the setup to work properly. Since there are many well-written tutorials for setting up each of these apps, I’ll just link to the best one that will guide you step-by-step through installing and configuring whichever app you choose.
Table of Contents
HFS (HTTP File Server)
HFS (HTTP File Server) has been around for a long time and is one of the best ways to share your files with others using a file server. It’s great for beginners as well as advanced users and can be set up pretty quickly with just default settings. For those who like to tinker, it has a bunch of other options to configure.
It is highly customizable and allows you to create an account, view current connections to your files, close/terminated connections, control bandwidth usage and more! It’s like a Windows Server File server except it’s free and works on the web!
The best thing about HFS is that it is so easy to use! It is simply an EXE file that you just run, no need to install anything on your computer! Next, simply drag and drop the files you want to share onto the HFS and you’ve got your own file server up and running.
All connections can be monitored via the tray icon and you have full control over all connections. You can specify the IP address and port number on which you want the file server to run. It has a ton of options that you can configure, including HTML sample code, so you can customize the look and feel of your file server. To get started, download the EXE and run it. The first dialog you’ll see is a Windows Security Warning telling you the program has been blocked.
Here you want to check Private network and uncheck Public network before clicking Allow access button. Next you will be asked if you want to include HFS in the shell’s context menu, which basically means you can right click on any file in Explorer immediately add it to the server files to share.
After you click Yes or No, the main interface of the program will load. Note that it doesn’t actually install anything on your system; it just runs as a portable app. Now all you have to do to get started is drag and drop some files in the left pane.
You will notice that the navigation bar is very simple: Menu, port number and mode you are using. By default, it is set to easy mode and this should be perfectly fine for most people. The port number is 80 and is only necessary if you want someone to connect over the web to your server. If someone is connecting via FTP to download a file, you will only give them your public IP address and the port number will be 21.
Using the web interface, they can also browse files and download them from there. In either case, you will have to forward the FTP (21) or Web (80) ports from your router to the computer running HFS. You can read about how to do all of that in the Firewall and Port Forwarding section below. Go ahead and click Open in browser and it will upload the web interface to your file server with a list of any files you added earlier.
Once you’ve set up your firewall and router to access your computer over the Internet, you can test yourself using HFS to make sure everything is working properly. Just click Menu and the first option is Self check.
Now, move down to the last section, where I explain the different steps you need to complete to access your file server from outside the local network.
FileZilla Server
Filezilla is a popular FTP client, but they also have a free server version. It’s also pretty easy to set up with default options that don’t change during installation.
Upon installation you will be asked to choose how you want to install FileZilla and best let it install as a Windows service. You can also leave the port number with the default value. Click Next and then you will be asked how the server will be started. Unless you want to start it manually, the default operation is to autoload when the user logs in. Click Install and the process will complete within seconds.
A small window will pop up showing basic information for the server. Test AStay connected to this server if you don’t plan to create any other FTP server on the same computer. Click OK and the main interface will appear.
There are a few more steps to setting up folders in FileZilla, but our friends at HowToGeek wrote a great article that walks you through the rest of the process. Setup FileZilla.
Free NAS
The last product I want to mention is Free NAS, it’s just a great open source program to create your own network-attached storage device. While FreeNAS can do a lot of other things, its basic goal is to make sharing files easier.
The only difference between FreeNAS and the other two programs I mentioned above is that the former is actually a full operating system of its own. If you want to use FreeNAS, you’ll have to dedicate your entire machine to using it! Also, it has certain system requirements that may prevent you from using it on your particular PC.
Either way, if you have a spare machine that you have never been able to find a use for, perhaps now is the time to convert it into an online and shared super NAS.
The guys at MakeUseOf have written a comprehensive guide to installing and setting up FreeNAS only to share files over the Internet. They also talk about how to set up dynamic DNS so you can access your server from outside the local network.
Firewall & Port Forwarding
As mentioned earlier, for any of these tools to work outside of your home network, you’ll need to do three things:
1. Open ports on local Windows firewall for PC (HFS and FileZilla)
2. Forward certain ports (FTP, WEB, etc.) from your router to your PC
3. Set up your home server with dynamic DNS so that it can be accessed via a URL instead of an IP address, which can change at any time.
The third option is optional because you can just look up your external IP address and make it available to the person who needs access to the server. However, if you don’t have a static IP address and most residential homes don’t, the IP address can change at any time. Usually it will be the same in a couple of days, so if that’s all you need to transfer files, don’t worry about option 3. If you don’t know what I’m talking about, check out my post. explains the difference between static and dynamic IP addresses.
I wrote a detailed post explaining port forwarding and how you have to configure it. You can learn more about port forwarding on your router by going to http://www.portionary.com/.
I also wrote about dynamic DNS and how you can get yourself an easy to remember URL that will automatically point your public IP address even if it changes.
Hopefully this will help you with your work on setting up a file sharing server from home. It will take some time and you’ll run into some hiccups along the way, but it’s totally doable for most people. If you have any questions or issues that you can’t solve, post a comment and we’ll try to help. Interesting!