Private IP vs. Public IP

I've set up a home network with a computer running Linux FC4 and another WindowsXP.

My FTP server under Linux is vsftpd 2.0.3. From the WinXP box and with Smart FTP client, I can connect to the ftp server with the local private IP address (ie. with a user name and its password uploading and downloading files. But with the public IP,, I am able to connect to the server but get disconnected immediately with an error message, an established connection was aborted by the software in your host machine.

I would like to know why there is difference between the private local IP and the public IP. Can you help me with this problem?

You need to configure port forwarding in your router (which gets assigned the public IP address) to the machine running the server (which gets assigned the local IP address). The port FTP usually uses for its command is 21. Note you'll also set up port forwarding for the passive mode port range of the server. For more details please Goggle for a page explaining the basics of routing / forwarding.