Have you ever wanted to share large music, video, or data files with friends quickly, but didn’t want to waste so much time uploading them first? There are a lot of online services that let you share files with others easily, but it still requires you to actually upload the file first.

The faster way to share files is to simply turn your computer into an FTP server so that users can connect remotely and download the files. Windows has a built-in feature for setting up a FTP server in the Professional and Ultimate editions, but it requires quite a bit of technical knowledge to get working. Luckily, there are a couple of open source programs that streamline the process considerably, leaving you with only a few things to configure on your own.

In this article, I’m going to go through a couple of open source file server applications that you can use to setup your own FTP server. I’ll also talk about the extra steps you need take, like configuring your router and firewall, to get the setup working properly. Since there are many well written tutorials for setting up each of these applications, I will simply link to the best one that will walk you step by step installing and configuring whichever app you choose.

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 novice and advanced users alike and can be setup fairly quickly with just the default settings. For the tinkerers, it has a whole bunch of other options to configure.

http file server

It’s highly customizable and allows you to create accounts, view current connections to your files, close/end connections, control bandwidth usage, and a lot more! It’s like a Windows Server File server except that it’s free and works over the web!

The best thing about HFS is how easy it is to use! It’s simply one EXE file that you just run, no need to install anything on your computer! Next just drag and drop the files you want to share into HFS and you’re up and running your own file server.

All connections can be monitored via a tray icon and you have full control over all connections. You can specify the IP address and port number that you want the file server to run on. It has a ton of options that you can configure, including the HTML template 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 Alert telling you the program is blocked.

hfs open firewall

Here you want to check the Private networks option and uncheck Public Networks before clicking on the Allow access button. Next you’ll be asked if you want to include HFS to the shell context menu, which basically means you can right-click on any file in Explorer instantly add it to the file server for sharing.

hfs context menu

Once you click Yes or No, the main interface for the program will load. Note that it does not actually install anything on your system; it just runs like a portable app. Now all you have to do to get started is drag and drop some files in the left pane.

hfs file server

You’ll notice the nav bar is very simple: Menu, the port number and the mode you are in. By default, it’s set to easy mode and this should be perfectly fine for most people. The port number is 80 and that’s only needed if you want someone to connect via the web to your server. If someone is connecting over FTP to download a file, you’ll just give them your public IP address and the port number will be 21.

Using the web interface, they could browse the files and download from there too. 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 when in the Firewall and Port Forwarding section below. Go ahead and click the Open in browser button and it should load up the web interface for your file server with a list of any files you added earlier.

hfs file list

Once you have setup the firewall and router for access to your computer over the Internet, you can perform a self-test using HFS to make sure everything is working properly. Just click on Menu and the first option is Self Test.

hfs self test

Now skip down to the last section where I explain the different steps you need to complete in order to access your file server from outside the local network.

FileZilla Server

Filezilla is a popular FTP client program, but they also have a server version that is freely available. It’s also fairly easy to setup with the defaults options left unchanged during install.

filezilla server

When installing, you’ll be asked to choose how you want to install FileZilla and it’s best to leave it so that it installs as a Windows service. You can also leave the port number with the default value. Click Next and then you’ll be asked how the server should be started. Unless you want to manually start it, the default behavior is to load automatically when the user logs in. Click Install and it should be finished within a few seconds.

A small little window will pop up that shows the basic information for the server. Check the Always connect to this server box if you don’t plan on creating any other FTP server on the same computer. Click OK and main interface will appear.

filezilla server port

There are a few more steps to get a directory setup in FileZilla, but our friends over at HowToGeek have written a great article that walks you through the rest of the process for setting up FileZilla.

FreeNAS

The last product I want to mention is FreeNAS, which is just an awesome open source program for creating your own network-attached storage device. Even though FreeNAS can do a ton of other stuff, it’s basic goal it to make sharing files easier.

The only difference 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 will have to dedicate an entire machine for its use! Also, it does have certain system requirements that might prevent you from using it on your particular PC.

freenas

Anyway, if you have a spare machine laying around that you’ve never been able to find a use for, maybe now is the time to convert it into a streaming and sharing super NAS.

The folks over at MakeUseOf have written a comprehensive guide to installing and setting up FreeNAS just for sharing out files over the Internet. They also talk about how to setup dynamic DNS so you can access your the server from outside the local network.

Firewall & Port Forwarding

As mentioned earlier, to get any of these to work outside your home network, you’ll need to do up to three things:

1. Open the ports on the local Windows firewall for the 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 rather than an IP address, which may change anytime.

The third option is optional as you can just lookup your external IP address and give that to the person who needs to access the server. However, if you don’t have a static IP address and most residential homes don’t, then the IP address can change at anytime. Usually, it’ll be the same for a couple of days so if that’s all the time you need to transfer a file, then don’t worry about option 3. If you don’t know what I’m talking about, check out my post that explains the difference between a static and dynamic IP address.

I’ve written a detailed post explaining port forwarding and how you are supposed to configure it. You can learn more about forwarding ports on your router by going to http://www.portforward.com/.

I’ve also written 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 get you well on your way to setting up a file sharing server from home. It will take a bit of time and you’ll run into some hiccups along the way, but it’s totally doable for most folks. If you have any questions or run into issues you can’t solve, post a comment and we’ll try to help. Enjoy!