Setting up the Raspberry Pi FTP Server In this Raspberry Pi FTP server tutorial, we are using Raspbian, if you don’t have it installed then check out my guide on installing NOOBS Raspberry Pi. (It’s the easiest way to get Raspbian onto your SD Card) Setting up FTP is easy and you won’t have to install any extra software. All we need to do is make sure that SSH is enabled by simply using Raspi-config. If you have already got SSH enabled, then you can skip ahead to the “How to Connect” section. 1. On the Raspberry Pi open up the terminal. 2. Enter the following command. sudo raspi-config 3. In here, go to Advanced Options->SSH. 4. Then select enable. 5. Now you can proceed to connecting to the Pi. Raspberry Pi SSH External Access If you want to access FTP outside your internal network, then please follow my guide on setting up Raspberry Pi port forwarding. The port you want to forward for SFTP is 22, and if you’re going to enable plain FTP, then you will need to forward port 21 as well. I would suggest having a different external port then to the standard internal port. Optional Setup If for some reason you want to use plain FTP, you can do the following to install it. I highly recommend you stick to SFTP as it much more secure, especially if you plan on allowing internet access. 1. Using SSH or the terminal on the Pi enter the following commands. sudo apt-get update sudo apt-get install vsftpd 2. Now open up the config file by entering the following command. sudo nano /etc/vsftpd.conf 3. In here add or uncomment (Remove the #) for the following settings. anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES user_sub_token=$USER local_root=/home/$USER/FTP 4. Once you are done press ctrl+x and then y to save and exit. 5. Now we need to create the FTP directory so we can transfer files. The root directory is not allowed to have write permissions so we will need a subfolder called files. If you try to copy to FTP, it won’t work but FTP/files will. Replace with the relevant user, for example mkdir /home//FTP mkdir /home//FTP/files chmod a-w /home//FTP 6. Now restart the service by entering the following command. sudo service vsftpd restart 7. You should now be able to connect over plain FTP (Port 21). How to Connect to the FTP Server You can connect to the server by using an FTP client, and I am going to recommend using FileZilla however there plenty more FTP clients out there. Any FTP client should be able to connect to the server without issue. 1. On your PC head over to the FileZilla download page and download the relevant client for your operating system. 2. Now enter the Raspberry Pi’s IP address, username, password and port 22. 3. Click Quickconnect. 4. It should now connect and login. 5. Test the connection by transferring a few files. FileZilla Raspberry Pi Troubleshooting Permission denied: This means you’re trying copy files to or from a place where your current user doesn’t have the correct permissions. To fix you will need to change the permission of that particular location or login with a different user. You might find that FTP isn’t enough for what you require. If you’re looking for something a little more advanced, then the network attached storage tutorial might take your fancy. Using the tutorial you can set your Pi up to act as a SAMBA server. I hope this guide has provided you with enough information to get Raspberry Pi FTP up and running. If you do come across some issues or you notice a mistake then please don’t hesitate to leave a comment below.