What is FTP and How Is It Used?

Published on August 1, 2012
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:


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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

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


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

    Kamal Nasser
    DigitalOcean Employee
    DigitalOcean Employee badge
    July 9, 2014

    @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 after Port 21 and restart ProFTPd:

    sudo service proftpd restart

    Make sure the configuration change took effect (the output should be

    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.

    Try DigitalOcean for free

    Click below to sign up and get $200 of credit to try our products over 60 days!

    Sign up

    Join the Tech Talk
    Success! Thank you! Please check your email for further details.

    Please complete your information!

    Featured on Community

    Get our biweekly newsletter

    Sign up for Infrastructure as a Newsletter.

    Hollie's Hub for Good

    Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

    Become a contributor

    Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

    Welcome to the developer cloud

    DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

    Learn more
    DigitalOcean Cloud Control Panel