What are the basic things that need to be done in order to get an FTP server working behind a router/firewall:
To run an FTP server behind a router, you need to perform
three basic steps:
You setup a Static IP address for each computer inside your
local area network. The reason for this step is to prevent
your router from forwarding a port to an internal IP address
which might be assigned to a computer that is not running
your FTP server. This problem often occurs when you connect and
disconnect computers to and from your router, and the DHCP server
on your router ends up assigning different IP addresses to computers
in your local area network. So assigning Static IP addresses to all the
computers inside your local area network will make sure that the
internal IP addresses within the network will not change.
How do I define a static IP address?
Forward the port that the FTP server will be running on in
your router's settings and forwarding a PASV port range, also
in your router's settings. Basically, any port that your FTP server
will be using will need to be forwarded.
Portforward.com has settings for almost every router.
You can use it to configure your router.
Click here to go to Portforward.com.
How do I define a PASV port range?
Configuring the FTP Server software. This involves redirecting
the PASV mode IP range as well as putting the FTP site address
that you will need to get (if your IP address is dynamic)
from a dynamic DNS service provider such as no-ip.com.
All you need to do is sign up for an account with
them and keep the software that they give you updated.
This will allow your FTP users to have an FTP site
address to go to which will not change even though your
dynamically assigned IP address changes. To accomplish this you
will need to download and install the dynamic DNS service
provider's client software, which will keep them, informed of your
current IP address as it changes.
Basically, you need to forward several ports on the router to one
of your computers in your local area network. That computer has
to be the one which is running your FTP server.
This process is called, "Port Forwarding".
Inside most routers, there are the internal settings that you can
access with your web browser. To forward ports, you need to access
your router's internal settings, usually with your web browser.
For example, http://192.168.xxx.xxx <-- An address similar to this.
Consult the manual of your router to see which address you need to use.
The default ports are: Port 21 (Some routers and FTP servers require
that you also forward port 20 along with port 21)
50000 to 50100 (50000 to 50049 for Serv-U FTP Server).
Then you have to choose which protocols are forwarded with
those ports. Usually, you forward the TCP ports. Sometimes, you
might need to forward all the protocols that your router supports, such
as UDP or even ICMP. If you run your FTP server on a non standard
port, then you will need to forward that port also.
Some routers have a function called, "port triggering".
If your router has both port triggering and port forwarding,
I suggest you try and get the server working without port triggering first.
If all else fails, then enable the port triggering.
Also, try not to run the server on a wireless connection.
It is my opinion that wireless technology is still in its infancy
and it is too unreliable and insecure to be running a server on it.
Portforward.com has settings for almost every router.
You can use it to configure your router.