// Tutorial //

What is FTP and How Is It Used?

Published on August 1, 2012
Default avatar
By Etel Sverdlov
Developer and author at DigitalOcean.
What is FTP and How Is It Used?

What is FTP?

FTP is a way to transfer files between hosts over the internet. It is especially helpful as a way to upload or download files to or from a site quickly. FTP clients allow connections from both anonymous and registered users. When the goal is to limit who can perform the file transfer, the log in is often set up to require a username and password, while content that is meant to be distributed widely is often set up with an anonymous FTP login.

How to Install FTP?

FTP is very easy to install on a virtual private server. Most FTP servers have very practical and usable defaults. Since FTP was not conceived as a very secure protocol, for example the login credentials are not encrypted, you can increase the security after installation by disabling anonymous login and chrooting your registered users into their own directories.

There is an large variety of FTP programs that can be installed on a VPS. Two that we find useful are ProFTPD or VSFTPD, and you can see how to download and configure them here, selecting whichever one you prefer.

VSFTPD on Ubuntu 12.04

VSFTPD on CentOS 6

ProFTPD on Ubuntu 12.04

ProFTPD on Centos 6

Next Steps:

Once you have an FTP client installed and configured on your virtual server, you can connect to it through the browser or the command line. Access on the command line is fairly simple, with the user required to type in:

ftp example.com

The prompt asks for a login and password, if you are doing an anonymous login, type in anonymous, and fill out the password with your email address. Once you connect, you can use the following commands to begin transferring files between machines:

put: copies the file from the local to the remote server

mput: copies multiple files from the local to the remote server

get: retrieves the file from the remote server and downloads it on the local machine

mget: retrieves multiple files from the remote server and downloads them to the local machine

ls: list the files in the current directory

cd: change the directory on the remote server

help: provides a list of available commands

pwd: provides you with the pathname of remote computer’s directory

delete: deletes a file on the remote server

mdelete: deletes multiple files on the remote server

exit: closes the FTP connection

Alternatively, to access a remote ftp server in your browser, type its address into the address bar. It should look like this:

ftp://example.com

If you prefer to avoid the command line for most of your FTP work, you can download Filezilla, an open-source FTP client and server.

See More

This was just a brief overview of FTP. If you have any further questions about FTP programs or commands, feel free to post your questions in our Q&A Forum, and we’ll be happy to answer them.

By Etel Sverdlov

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?
10 Comments

If you’re getting the follow error for passwords

Response: 331 Please specify the password. Command: PASS * Response: 530 Login incorrect. Error: Critical error: Could not connect to server

Please see the following below

http://askubuntu.com/questions/413677/vsftpd-530-login-incorrect

This comment has been deleted

I already create new user to reguler access. When I tried to upload using filezilla, to my /var/www , i got

Response:	550 index.html: Permission denied
Error:	Critical file transfer error
Response:	550 style.css: Permission denied
Error:	Critical file transfer error

I already change my owner of file to user that I created before, with this command :

sudo chown -R $user:$user /var/www/mysite.com/

But, I still get the erorr

@saurabh.vashist: You can install ProFTPd: How To Set Up ProFTPD on Ubuntu 12.04. The package in 14.04 is called proftpd-basic instead of just proftpd.

To make it accessible internally only, edit the configuration file:

sudo nano /etc/proftpd/proftpd.conf

Add DefaultAddress 127.0.0.1 after Port 21 and restart ProFTPd:

sudo service proftpd restart

Make sure the configuration change took effect (the output should be 127.0.0.1:21):

sudo netstat -plutn | grep -i ftp

I have a droplet running Ubuntu 14.04. One of my site uses “FTP” for Registered Users for file uploads and downloads through scripts on the site (means requests are generated internally through server only and not for outside direct FTP). Can I use ProFTPD or VSFTPD on my droplet? Is there any link to ready to use instructions?

To add to my previous post:

A viable and (more) secure alternative to FTP is SFTP: <a href=“https://www.digitalocean.com/community/articles/how-to-use-filezilla-to-transfer-and-manage-files-securely-on-your-vps”>How To Use Filezilla to Transfer and Manage Files Securely on your VPS</a>.

Never mind. We just had the wrong password. Works perfectly with transmit and I assume all other FTP clients.

We would like to use SFTP on Transmit 4. Is this possible? We can’t seem to get it working as we normally would.

The title & contents of this article should be changed to <b>What is FTP and [WHY] It [Should NEVER be] Used?</b>

Yep, you could use sftp via winscp too.