|June 27, 2004
12, 2004 - Update - I modified this guide so that instead of using port
20 and 21, the FTP server now should run on a different port number.
This is for security reasons since the default port 21 is very often scanned
by hackers. By using a different FTP port number, you are much less
susceptible to having your FTP server hacked.
Running a FTP server from
home on DSL or Cable modem can be difficult. The reason is that most
FTP servers are written for computers that are directly connected to the
internet, while most people who run FTP servers from home, do so from behind
a router. It is a bit more complicated to run a FTP server from behind
a router, but follow along and you'll have one up in no time.
Before we start, I would
strongly advise you not to use IIS for a FTP server for several reasons.
First of all, IIS doesn't have enough settings to run a FTP server from
behind most routers. The resulting FTP server may have spotty connections.
Second, IIS FTP server is highly targeted by hackers out there. The
reason is that there are a ton of people out there who have IIS installed
(knowingly or unknowingly) and most of these are unsecured. It's
a popular target. By using a 3rd party FTP software, it is less likely
to be exploited. In this example, I'll show you how to setup Serv-U
Personal which is FREE for individuals. There are many different
paid versions of Serv-U, but for most people the Personal edition should
Serv-U Personal is capable
of the following:
Download Serv-U from here:
One domain with a maximum of
2 concurrent connections
No more than 5 user accounts
No directory mapping or links
No UL/DL ratios, quotas, or
You may use Serv-U Personal
for as long as you wish. However, consider purchasing a Registration ID
for the Standard or Professional edition so that you can enjoy all of the
features and expandability Serv-U offers.
You have to enter your name
and email and then they will send you a link to the download. Download
the file according to their instructions.
This guide is uses Serv-U
Version 184.108.40.206 as an example.
Double click on the file
to begin installation.
You'll see this welcome screen.
It warns if you have an older version of Serv-U installed, you need to
backup your Serv-U directory. Click "Next".
Read the Read Me file.
Read the License Agreement
and agree to it. Check the box and click "Next".
Here you choose the installation
directory. Default is fine. Click "Next".
Here you choose the components
to install. Default is fine. click "Next".
Here you choose the Program
Manager group. Default is fine. Click "Next".
We are now ready to install.
Installation is now done.
Now that installation is
complete, we have to configure the program. At this screen, you can
leave it at default. Click "Finish".
A Setup Wizard begins.
Show menu images. Default
is fine. Click "Next".
Start local server.
You enter your WAN IP address
here, not your LAN IP address. If you have a dynamic IP address,
you can leave it blank. Click "Next".
Enter your domain name here.
For this example I'll use "temphost.com". Click "Next".
Here you have the option
as running Serv-U as a service. Default is "No". You should
change it to "Yes". Click "Next".
Here you choose whether or
not to allow anonymous access. Default is "Yes". This depends
on your situation and what you are using the FTP server for, but in most
cases, I would put "No". If you want to distribute files freely to
the world, you want anonymous access. If you want to us FTP to update
websites and access private files, you do not want anonymous access.
Create a named account?
Yes, we want to do this. Click "Next".
Type in the name of the account
you want to create. Click "Next".
Type in a password for that
account. Don't peek.
Here you select the Home
Directory that the user is placed immediately after logging into the FTP
server. If you are using FTP to manage your website, I usually like
to have the FTP directory one level up from the website directory so that
I have kind of a "staging area" to move files around and test things.
Click on the file cabinet icon to browse to the directory you want to FTP
Here you specify whether
or not you want the user to be confined to his home directory. If
the account is for somebody that needs that privilege, go ahead and grant
it. If the account is for a guest and they don't need to explore,
deny it. Click "Next".
Here you grant admin privilege.
Grant as necessary. If you're the only user, select "System Administrator".
The Wizard is now done.
Allright, let's configure
the program. Double-click on the Serv-U icon on your desktop or system
tray to open the Serv-U control panel.
Navigate to: Serv-U Servers
--> << Local Server >> --> Domains
Click on the domain name
you entered during the setup wizard. In this example, it's "temphost.com".
Since the FTP port is oftentimes
port scanned by hackers, it is a good idea to change the port number of
your FTP server. The default number is 21, but in this example, we
will change the port number to 28, which is a generally unused port number.
Serv-U is designed to work
with static IP addresses and dynamic ones as well. However, we can
configure the Serv-U with dynamic DNS even if we have a static IP number
since it does effectively the same thing. From here on out, I'm treating
static and dynamic IP's the same.
So, check the "Enable dynamic
DNS" box regardless if you have a static or dynamic IP address. Trust
me. I confirmed this with Serv-U tech support.
Now a "Dynamic DNS" Tab appears.
Click on that tab.
Type in the domain name that
you have. Then hit "F5".
What just happened is that
Serv-U looked for the IP address associated with your domain name.
If you have a static IP address, the IP number will be the same.
If you have a dynamic IP address, the IP number could vary once in a while.
You don't have to hit F5 each time, Serv-U will keep track of changes in
IP number associated with your dynamic DNS service. Also, you don't
need to use DNS4Me which is their own dynamic DNS service. You can
use which ever dynamic DNS service you like.
OK, now we have to configure
Serv-U to work behind a router.
Under << Local Server
>>, click on "Settings".
Click on the "Advanced" tab.
Under PASV port range, enter 2000 - 2010. Click "Apply". Do
not forget this step!
Now we have to setup the
You need to forward port
28 and 2000-2010 to the local IP address that Serv-U is running on.
Now Serv-U should work!
There you go, a FTP server!
There are many more features
of Serv-U that you can play with. This guide is meant to just get
you up and running.
Now for your FTP client.
By default, your FTP client will try to connect to port 21. You have
to manually change it to port 28. Also, make sure your FTP client
is set to passive mode. These two steps are necessary for the FTP
client to connect to the FTP server.
By not using the default
port 21, your FTP server is much more secure now. People won't know
that you are even running a FTP server.