Passive FTP Server from behind an Internet Sharing Device

The information provided is intended to help explain why the Passive option is available in GuildFTPD as well as show its use.

The picture and reference information next to it are provided below to give a visual aid intended to help clarify the included description / explanation.

Internet PC's
External Addresses
These are the IP addresses that
Internet users obtain when connecting
to the Internet via an ISP.

These are usually any IP address that
is NOT in the following ranges:
10.x.x.x
192.168.x.x
(There are a few more, but these two are most common)

Firewall Server
External Address
The ISP assigned address your Internet
sharing device is either assigned via DHCP
or by a static entry they've given you to enter.
Firewall Server
Internal Address
The private address you have given your
Internet sharing device. This should be static
and is usually in the 10.x.x.x or 192.168.x.x ranges.
GuildFTPD Server
Internal Address
The private address you have given your
GuildFTPD server. This should be static and in
the same subnet as your Firewall's Internal Address.

Example: If your Firewall has an internal address of
10.1.0.1, you will want to set your GuildFTPD
Server's internal address to something that starts with
10.1.0..... like, 10.1.0.2.

First, let's establish some IP addresses to go with the picture above.

Internet PC (we'll just use one for now) = 24.4.0.3
** Firewall External Address = 12.2.0.6 (static or DHCP, your choice)
Firewall Internal Address = 10.1.0.1
** GuildFTPD Internal Address = 10.1.0.2

** most important addresses

Ok, now let's state some assumptions:

- You've got GuildFTPD installed and set up.
- You can connect and transfer files to/from your GuildFTPD server from another PC within your home / network.
- Your Internet Sharing Device is working and your other computer(s) can access the Internet.
- You have some limited experience with your type of Internet Sharing Device.
........or.... you're a quick study and have the manual(s) handy.

SETUP STEPS:

On GuildFTPD Server. NOTES:
Open the Admin menu and select Options.  
Click on the Advanced Settings tab.  
Click the Passive button.  
Type in the IP address of your Internet Sharing Device's
External Address.
Using the addresses specified as examples,
this would be 12.2.0.6
Use the up arrows and select a range of ports. Use as many or as few as you like.
However, the total number of ports will
determine how many passive connections the
server can have.
One port for each passive connection.
Click OK.  
Click Admin menu and select Restart Server.  
   
On Internet Sharing Device  
Set up forwarding for port 21 (or whatever port you
have set in the OPTIONS tab in the main window)
so that any WAN (external) requests will be forwarded
to the IP address of the (internal - LAN) GuildFTPD server
(10.1.0.2 from above example).
If you have different ports on your
SYSTEM and GROUPS and USERS,
you'll need to forward those as well.
Set up forwarding for the passive ports you set up in
GuildFTPd earlier.
 
Test a connection from a PC not in your network / home. Be sure to remember to use the IP address
of your Internet Sharing Device's External
NIC, the port you've set (if different from 21)
and connect with Passive enabled on
the FTP client.

That should do it. You should now have a FTP server that's available to the outside world.

One note: If you set a passive port range of 2100-2121, you've limited the number of passive connections to 21. This means, that if you've set you other connections limits higher than 21, the passive port range will reduce the limit to 21 for concurrent passive connections. Only active connections from within your network will not count to this total.