If you use the Internet frequently, you must have come across some sites which offer uploading and downloading of files on their own servers. I am not talking about file sharing sites that offer to upload and download files through HTTP (Hyper Text Transfer Protocol) but the sites that use a special protocol called FTP (File Transfer Protocol). The File Transfer Protocol is specially designed for the process of transferring files from one computer to another over the Internet. This protocol makes it easier to transfer multiple and large files without interruptions and also supports download and upload resuming when possible.
This tutorial is not about setting up a FTP server on a web server but it is all about making your own home computer act as an FTP server so that you may upload and download files from remote locations in your computer. You can also create accounts for your friends and family members to share files. This is especially useful when you want to share files and data with anyone that is very sensitive in nature and you don’t want it to be uploaded to the Internet at any cost. The FTP process will make sure that the data remains only among the authorized users.
Although there are many FTP servers available for Windows, either they are very costly or their free versions are very limited. So I have selected FileZilla FTP Server which seems to be the best in its class. Among so many other features, the ones I like the most are the user management interface and the permissions which can be assigned to any user. I can easily create groups and users and assign them certain read/write permissions in order for accessing and working on the FileZilla FTP Server. The permission sets are very similar to Linux permissions along with advanced options.
Configuring Dynamic IP
First of all, we need to address a problem with every home user – there is no static IP. The IP is the network address associated with your computer. Most Internet Service Providers do not provide a static IP address to the home users. If there is no static IP address, you will need to change the server address each time you restart the Internet router. For resolving this problem, we will be using a dynamic DNS service. No-IP is a very basic but free dynamic DNS service which can serve our purpose easily.
Go to No-IP.com and create a free account. After your account is fully active, you can download the No-IP dynamic update client for Windows. The installation of the update client is pretty straight forward and does not require any user input or manual configuration.
When you start No-IP dynamic update client from the Windows start menu, it will ask you for your registered email address and password. After signing in, you will need to create a host name for you computer. You can create the host name here. Just enter the host name with DNS Host (A) as host type and leave the rest of the options as default. Click on the Create Host button to create the host. Configuration will take some time (one minute or so) to propagate.
Now you can easily access your computer through the host name provided by no-ip. In my case, it is sanix.serveftp.com.
Setting up the FTP Server
Now that you have setup a dynamic DNS service on your computer, you can proceed forward and download FileZilla FTP server.
During the setup process, you will need to choose the components to be installed with the FTP server. I would recommend keeping the install type as Standard. Another important part of the installation process is choosing the port for administration interface of FileZilla server. The default port is 14147. Let’s keep it default for this tutorial but you can change it to any value between 1024 and 65535.
If you want to start the FTP Server with Windows startup, you should select install as a service, automatically started with Windows. Otherwise select the manual option but you will need to start the server yourself upon Windows restart.
Once installed, you will find the FileZilla server icon in the system tray. Double click on the icon to access the configuration option.
A Connect to Server dialog box will appear. If you want to have an administration password, you can input the password here and then click OK without changing other settings.
Configuring your FTP Server
Now the real fun begins when we start to configure the actual FTP server. First we will be creating some groups. Groups enable us to manage the users easily. We can apply certain permissions and restrictions on the group which will be applied to all the users in the group. For creating a new group, go to “Edit menu –> Groups” and then click on the add button under groups.
Now that we have created the first group, we will be adding some users to this group. Go to “Edit menu –> Users –> Add” for adding the users.
Once you click OK, you will be able to create passwords for each user under the account settings.
For each group or individual user, you can assign different folders which will be shared to those users and groups. To add a new folder to a group, go to “Edit menu –> Groups –> Shared folders“. You can click on the Add button to create a share folder for that particular group. Once created, you can easily set permissions for that particular direct under a specific group. The file permissions include the following:
- List + Sub-folders
That’s all what you need to setup a very basic FTP Server on your home computer. You can go through the advanced settings under the Edit menu. Please note that if you want the FTP server to be available to the network users, it needs to be in Active mode. If you want to restrict the access to the FTP server, lock the server by selecting the lock option in the server menu.
Connecting to your FTP Server
Once everything is configured and the FTP server is active, you can go to another computer on the network and access the FTP server by using your Local IP address. If you want to access it from the Internet, you can use the dynamic DNS address which we have already setup at the start of this tutorial. The address will look something like this: username.no-ip.com:21. Please note that the administration port no. is different from the server listening port. The server listening port is the one on which the clients will connect to the server. The default listening port is 21. You can change it through options but make sure that whichever port you select should be open in the firewall and computers can communicate through this port. The administration port is only for administering the FTP server and can be used only internally without giving access to the outside world.
Hopefully this guide will enable you to create your own FTP server on your home computer.
Image credit: Multiple Wired To Ftp by Big Stock Photo.