FTP stands for File Transfer Protocol, if you want to know more about it, you can check it out at Wikipedia. FTP is actually getting less popular nowadays as users have lots of other protocols to exchange files, P2P especially BT. FTP, however, is still playing a very important role.
Let’s say, if you have a file that’s about 300MB and you would like to send it over to your friend oversea immediately. What would you do? Usually emails have attachment limit (usually it’s not as high as 300MB) and it will be extremely slow and unstable if you try to transfer over instant messenger software like MSN. The best solution will be setting up your own FTP server at home and authorize your friend to download from your computer. Mind as well, you can set up an account so that you can view all of your files and grab them wherever you go.
If have already set up your remote desktop at home, you will probably leave the computer on 24*7 just so that you can access it any time you want. Or if you have a spare computer like I do, why don’t you try to make use of it? I am going to show you how you can make your computer into a FTP server.
After trying a couple of the FTP server software, the freeware FileZilla Server became my choice.
OK, let’s get started.
The first thing you will need to do is to install the package you just downloaded (from the above link); the installation is quite straight forward and I am not going to get into too detail.
Upon successful installation, FileZilla server will launch and you should be able to see the following interface:
Before we go ahead and set it up the ports, we would like to add a user to make sure it works. We will go to choose from “Edit–>Users” (Or there is a shortcut icon right underneath the “Edit” on the menu bar.)
I created a user named “anonymous”, and I make sure the “Password” field is uncheck because I would like to make this as my public FTP account that visitors could download from my FTP server. If you would like to set up other accounts, make sure your “Password” filed is checked to enforce a secure login. For different users, you can assign different path, or you can just create a group and assign the path to all members in that group.
On the left hand side, you will see the “Shared folders”, you can specify the folder path you would like “anonymous” to look at as well as the permission you would like to grant. Once it’s done, click OK.
Note: The shared folder directories is the root folder that the selected user (in this case, it’s “anonymous”) could see, but any folders contained by root folders are also visible to this user.
The common thing Windows users would probably miss while setting up FileZilla is the Firewall. Over the installation, even though you grant permission for FileZilla server to access your computer resources, there is something not quite correctly set up.
Browse to your firewall setting, you should be able to find FileZilla Server Interface might be in the allow list; however, this is the problem. We should allow the FileZilla Server core instead of the interface. The interface is just the UI for end users like you and me to access the core program. So we click add to choose “FileZilla Server” from the installation folder:
Now it should be OK.
If you have two or more computers at home, you can give it a test now. First find out your internal IP address. If you don’t know how to do it, check my previous post, set up your remote desktop. For example, I found that my server’s internal IP is 192.168.1.111, then on the other computer, I simply type in ftp://192.168.1.111.
Note: If you have a different port other than port 21, let’s say you have port 22, you should type in ftp://192.168.1.111:22 if you don’t know what port it is, it’s actually under setting–>General setting: If it works for you, we will move on; otherwise, please read the instructions again or ask me.
FTP server is meant to be exit in a network, if you just try to set it up at home, then you are done; but according to the situations I introduced in my first paragraphs, I do want to make it global.
Like a Remote Desktop, we will also need to set up port forwarding. In my case, since my FileZilla Server is on Port 21 on my computer, I will need to somehow forward the FTP request onto this port. Ideally, it would be great if we can set up port 21 as external port because every time we type in the address, we don’t need to type in the port number (Browser’s default FTP port is port 21). However, most of the ISP (Internet Service Provider), for example I use Telus, block port 21. We will need to find an alternate port as our external port:
I set up Port 5050 as my external port and all FTP request through this port will be redirect to Port 21 on my server. I am using D-Link DIR-825, if you have different router, please refer to the instruction on your manual.
If you set up your Dynamic DNS, then you are already done, if not, please go back and read my post; it’s extremely easy.
Let’s say you have your Dynamic DNS name as myServerAtHome.no-ip.org, then when you are outside, you can simply type in ftp://myServerAtHome.no-ip.org:5050, but if you are at home, you can just type in ftp://192.168.1.111.
You can use your browsers to visit your FTP server, however, I do recommend you to use FTP software. FileZilla Server is a great FTP server and they do have client software too. You can check FileZilla’s website; if you haven’t got one, why don’t you try FileZilla Client?