How to Setup FTP Server on Raspberry Pi SecurelyMandip
Did you ever think of creating your own FTP server to get an access anytime without worrying about stilling of your identity by others when you enter your credentials? If the answer is affirmative to this question also, then you are a right place. Today, I will guide you for how you can build your own Raspberry Pi FTP server with a high-security level.
If you didn’t think about it yet, then check this below quick info on the FTP server powered by Raspberry Pi. You can directly jump to the setup process also.
What is a Raspberry Pi FTP Server?
When you create an FTP server powered by Pi, you can easily transfer the files between your computer and Raspberry Pi anytime. The File Transfer Protocol is used to do the job. Setting up a personal server makes you free from using an external storage drive to transfer the data between your Raspberry Pi and PC.
What can I do with Raspberry Pi FTP Server?
If you are a fan of retro gaming and want to transfer some of the ROM from the emulator quickly, then you may need to access the online server from both of your devices, establish a connection between two systems with the help of some commands and then complete this task. Also if you already installed the official Raspberry Pi Operating System AKA Raspbian but only needed some particular important files from the PC, then you may need to use a USB drive to copy and then again inserting it in your Pi to paste them. But, when you create a Raspberry Pi FTP server, then you can finish all such tasks in quick time without much effort.
What will you get at the end of this project?
You will create your own fully functional file storage server using a Raspberry Pi. You will be enabled to create an automatic backup process with some basic Linux commands. You can send and receive files between two devices remotely without using any external resource.
How to Setup an FTP Server on Raspberry Pi?
First, let’s take a look at the things you will need to setup the server.
- Raspberry Pi board (Pi 3 recommended)
- Raspberry Pi Operating System (I advise to get Raspbian to get easy access to FTP)
- Power supply for Pi
- Pi compatible Micro SD card (minimum 4GB)
- A USB WiFi adapter or a Cat5e Ethernet cable
- External hard drive (I used 1TB storage disk)
- Raspberry Pi display
- HDMI cable
- A sturdy case for Raspberry Pi protection (optional)
- USB keyboard and mouse
I assume that you know the process of powering up your Raspberry Pi and attaching all the essential components with it. So I am moving on to the steps to build a Pi FTP server directly.
Step-1: Install the OS on your SD card
The first step is to install the Operating System on your micro SD card and make it bootable. If you had not done this yet, then you can check the available guide to make a Raspbian micro SD card for Raspberry Pi. After you download the latest image of the official Raspbian OS on your PC, install it on your SD card and prepare it to use with your Pi.
Step-2: SSH enabling
You should also check that the secure shell (SSH) is on. You can use both the terminal and graphical interface to check the status of SSH. I will show you both here.
1) Raspberry Pi terminal
Open the command terminal on your Raspberry Pi and type
You will see a list of option in the configuration window. Go to the ‘Advance Options.’ In that, look for the SSH and click on it. Select ‘Yes’ when you prompted and asked, ‘Would you like the SSH server to be enabled?” Now, click on finish to exit the terminal.
2) GUI (Graphical User Interface)
This is an easier way to enable SSH. In the settings, go to ‘Preferences’ and then choose “Raspberry Pi Configuration.” Navigate to ‘Interfaces’ and click on the ‘Enabled’ button for SSH.
So, this step makes sure that you have enabled the SSH.
Step-3: Establish the connection to the server
You have your server in working condition, but to make it respond, you need a client side to send a request to the server. To create and connect the FTP client to the server, follow the process below:
- Open FileZilla software in your Windows OS. If you don’t have the application, then download it from the official resource
- In the FileZilla window, you will need to enter some essential information like Host, Username, Password, and Port number. The Raspberry Pi board comes with the default username and password as ‘pi’ and ‘raspberry’ respectively
- In the ‘Host box,’ you need to enter the public IP address of your system. If you don’t know how to find the IP address of your Pi, then follow the steps mentioned here (link for the post to find IP address)
- You can also enter the private IP address after entering the below command and getting it
- Enter the value of the port as ‘22.’
- Click on the ‘QuickConnect’ button
Voila! You have connected the client to the server. You will see a list of files and folders on left and right panel of the FileZilla window.
Step-4: Reboot your Raspberry Pi
Restart your Pi set up and open the FileZilla app. Now, you will have remote access to send and receive files between your FTP server and FTP client.
That’s it. You have created your own FTP server. Many users have confusion between choosing the server type from FTP, SFTP, and FTPS. So, let’s take a quick look on all three of them.
This is the primary version of the File Transfer Protocol AKA FTP. It allows you to transfer the data between two systems. Beginners and most of the pros who work in the field, use this protocol in their setup. It is most beneficial when you have a trust on the network you are working in and where limited access is needed to do the job.
The SSH File Transfer Protocol (SFTP) works like FTP but in a secure way. In the modern Raspberry Pi projects, SFTP is widely used and is the first choice ahead of the FTP.
When a Secure Sockets Layer (SSL) or TLS (Transport Layer Security) is added in FTP, then it is known as File Transfer Protocol Secure (FTPS). It makes the communication between the client and server more secure, easy, and convenient. Also, it allows an authentication to the remote server. It also allows restricting the access of copying the data. For example, a user may get the modified file but not the date when the file was created.
Not every time you may fortunate to establish the connection between the server and client. If you get an error like ‘Could not connect to the server’ or ‘Connection timed out after 20 seconds of inactivity’, then don’t get frustrated. The reason may be that you have not opened the forwarding port option on your router. Try again by entering the details or reopening the software.
If you are getting an error of permission denied to access the server side, then change the local directory in your system and check if it is done successfully.
I hope this guide is useful to you for setting up your own FTP server on Raspberry Pi quickly and easily.
Which type of server will you use? Did you try another way for creating Pi FTP server and succeeded in it? Let me know your thoughts in the comment section below.