A dedicated FTP server is great for local development. It also allows you to add additional security to your files, because you don’t want people stumbling upon them using a shared hosting account. In this tutorial, we’re going to show you how to quickly set up an FTP server on your Linux PC with FileZilla.
There are many reasons to create an SFTP server on linux. Here are the best Linux ftp servers with gui that allow you to transfer files via terminal commands or a graphical user interface,best ftp server and ubuntu ftp server.
Best linux ftp server with gui
FTP or File Transfer Protocol, as the name suggests, is the traditional technique of transferring files between secluded network sites. Developed on a client-server architecture, it has separate control and data connections to engage with the clients and server applications. It means that clients can connect to an FTP server so that they can allow users to send files and retrieve them using the server whenever necessary. Free FTP Servers for Linux are available to setup on your server.
Today, very few people consider FTP for the general downloading of files. They use direct downloading methods, i.e., using Web Browser, by BitTorrent, Metalink, or other downloading utility to download Linux distributions and software.
However, there are many free open source FTP servers you can use for transferring files to and from computers over Transmission Control Protocol/Internat Protocol (TCP/IP). We will breakdown a list of the top free FTP servers for Linux that are available to setup.
Top Free FTP Servers
1. Pure FTPd
Pure FTPd is a fast, production-quality, and standard-conformant FTP server that strongly focuses on software security. It is efficient and easy to use and tends to deliver answers to mutual needs. It is beneficial as it provides unique features for both individuals and hosting providers.
Since it is a security-based protocol, it re-audit the code when the system detects any new vulnerabilities. Moreover, it has protocol basics and contemporary extensions like MLST/MLSD for extensible and mirror safe directory listings.
- Fortune and Apache-like log files
- Text/HTML/XML real-time status report.
- Numerous virtual FTP servers can be hosted on the same computer with the help of independent and trusted IP.
- Users can create home directories on-demand.
- Ease of including custom authentication methods.
- Numerous servers with distinct settings can be used on the same host.
ProFTPd is the most configurable and popular free FTP server provider. It uses an original design and implementation. However, it is not a branch of FTPd.
Its numerous service providers allow delivering update access to the web pages of users without even running Unix shell accounts. Hence, it is the best free and open-source software.
- Configuration of multiple virtual FTP servers and anonymous FTP services is relatively effortless.
- In contemporary Internet environments, the SITE EXEC command is considered inappropriate. Thus, ProFTPd does not have this command.
- Source code for audit is only and always available to administrators and developers.
- It is designed in such a way that it can run either as an independent server or by using inetd/xinetd that depends upon the system load.
- It has one primary configuration file that includes directives and directive groups. It is inherent to the administrator who is familiar with the Apache webserver.
- No specific directory structure, system binaries, or other system files are necessary for Anonymous FTP root directories.
- It’s per directory (.ftpaccess) configuration is similar to Apache’s .htaccess.
- FTP has shadow password suite support that includes support for expired accounts.
- It has IPv6 support.
How to Setup Filezilla FTP Server on Azure
The vs in vsftpd stands for “Very Secure.” It is an FTP server or daemon that uses inetd based services. It can attain ~4000 concurrent users in a production environment of a machine. Moreover, it has 86 Mbyte/sec download over Gigabit ethernet between Linux-2.4.x.boxes.
- Sturdy per-user configurability
- IPv6 support
- Per Source-IP limits
- Bandwidth Throttling
- Virtual users
- Independent or inetd configurations
- Virtual IP configurations
- Support of encryption with the help of SSL integration
- Per Source-configurability
4. The Apache FTP-Server
The Apache FTP-Server is solely a pure Java, comfortable, and portable free FTP server that is designed keeping in mind the latest available open-source protocols. It runs stand-alone as a Unix/Linux daemon. It also supports integration within Spring applications and delivers their releases as OSGi bundles.
- It is a free and open-source presumable FTP source.
- It comprises User Virtual directory, upload/download bandwidth limitation support, and idle time-out.
- Users can even add event notifications in Ftplet.
- Users can easily add a custom user manager, IP restrictor, and logger.
- It has Mode Z support to upload/download data rapidly.
- It contains implicit, explicit SSL, and TLS support.
- Users have the privilege to change the date-time stamp of files using MDTM support.
- Users can customize every FTP message.
- Anonymous logins are supported in the Apache FTP server.
- It manages both ASCII and binary data transfers.
CrossFTP offers highly-secured, high-performance, and effortless configuration FTP servers for numerous platforms. It encompasses versatile GUI for both beginner users for start-ups as well as advanced users.
- It has multi-platform support and offers multi-threaded designs.
- Users can use the UTF-8 directory encoding for international support.
- It helps in monitoring the activities of every user.
- It assists in resuming both upload and download files.
- It has IP restrictions that are used to allow or prohibit the IPs.
- Allows customizing FTP messages.
- It contains Bonjour discovery protocol support.
uFTP is an open-source, lightweight, and portable FTP server, that is, written in C for Linux and POSIX compliant Operating systems. It is easy to install, compile, and configure and is cordial to all leading FTP clients.
- Requires single binary and configuration file.
- It can be easily installed, compiled, and configured within a few minutes.
- Uses only one configuration to edit and configure the server.
- It is an open-source server with a permissive MIT license that allows users to use the server and reuse the code in commercial applications too.
- Uses a different approach from other servers.
glFTPd is created in such a way that it develops and manages an FTP server that is well-versed in transferring protocols like FTP, FTPS, HTTP, HTTPS, and SFTP. It provides the user with a secure web-based interface so that they can allocate the server from anywhere.
- Logins are limited by a specific set of IP addresses.
- The quote transfer is done based on per-user and per-group.
- It does not allow users/groups to be stored in the system files. It makes the server impressive to warez servers containing topsites.
- Has the ability to integrate with Eggdrop through IRC channels.
A fast, extendable, and reliable FTP server, Colorado FTP is fully compatible with File Transfer Protocol and extensions like RFC 959 and RFC 3659. It makes the implementation process of extending the functionality with any feature virtually effortless. Users can shape the FTP server the way they want with the help of well-commented source codes and existing plugins.
- It is accessible for platforms featuring Java-like Linux, Unix, etc.
- Are totally compatible with files like RFC 959 and RFC 3659.
- Effortless implementation process of extension of functionality with all the virtual features.
- Customizable FTP server using well-connected source codes and existing plug-ins.
DrFTPd is free software that comprises plugins and file transfer slaves. It does not have root administrator privileges and strip files across slaves. Hence, it is one of the best free and reliable FTP servers for Linux.
- The slave selection process on this FTP server is done on the basis of used bandwidth.
- It has archiving and mirroring plugins.
- It has a built-in zip script.
- It has sitebot plugins with the martyr.
- It also has trial plugins for users.
10. Waarp FTP
The Waarp FTP server is implemented keeping in the RFCs like RFC 959, 2389, 2428, 3659, and 775. It also involves extra commands such as XCRC, INTERNALSHUTDOWN, XMD5, and XSHA1. The development of this server is based primarily on the NETTY framework that makes it efficient for memory, threads, and network bandwidth.
- The limitation of bandwidth can be configured both in stores and retrieved per session or internationally to the server or can not be used as per the user’s desires.
- This software can be adapted depending upon the needs of the user by changing the pre and post-action of the commands, using any specific authentication mechanism, and changing the underlying representation of files and directories.
These open source free FTP servers are considered to be the best when it comes to Linux. They have a well-established security server that helps them to handle the safety of the flies and the site effortlessly. Thus, the user can solely rely on the above-mentioned free FTP server for Linux.
best ftp server
1. Serv-U FTP Server
Serv-U FTP server is yet another addition to an already shining list of SolarWinds products. If you are a network engineer then you have definitely heard of the SolarWinds Network Performance Monitor, arguably the best infrastructure monitoring solution. Their FTP Server is no different. It’s very simple to use and won’t cost you as much as similar products. On top of FTP, this server software also supports FTPS and SFTP standards.
Serv-U can be accessed using a web client which means you can even use your mobile phone to download and upload files from anywhere. Supported browsers include Firefox, Chrome, Safari and Internet explorer. And as expected, there is no limit to the file size that you can send. The software gives you full visibility into the transfer queue and you can pause and resume downloads at any time. You can also change the priority level by adjusting the bandwidth allocation for each transfer. This will also ensure that the file transfers do not consume too much bandwidth and end up affecting your Network performance.
With Serv-U FTP server, you have full control over who has access to the files on the server. You can create user-based permissions or group-based all from the software interface. Additional settings that you can execute using this FTP server include specifying the maximum number of active sessions at any given time. This could be maximum sessions per server, per IP address, or per user account. Once the transfer is complete you can configure the FTP server to automatically delete or move the original file.
The Serv-U Gateway is an additional module of this FTP server that facilitates compliance with various regulatory standards such as PCI DSS. And one of the ways it does this is by ensuring that data is not stored in the DMZ. Windows and Linux are the supported Operating Systems for this FTP server. You also have the option to integrate it with a Database and LDAP server.
FileZilla is also quite a popular FTP server thanks to its solid free offering that easily compares to some of the commercial solutions. Which is to be expected since its an open-source software. FileZilla is also compatible with FTPS and SFTP standards in addition to FTP.
Although a bit outdated in its layout, the FileZilla interface is easy to use and just requires your intuition. The default FTP port is 23 but FileZilla allows you to specify the port that you want to use. It also allows you to adjust bandwidth usage to avoid disrupting network performance and to give priority to specific transfers.
As a security feature, FileZilla will automatically ban IP-addresses that have unsuccessfully tried to log in to your FTP server multiple times. That is in addition to the usual authentication of requests sent by the client computer. Even better you can completely block out unencrypted FTP connection and only allow FTP connection via TLS protocol. Moreover, you can block a particular IP address or a range of addresses that you do not want to access the server.
Another interesting feature of FileZilla is its ability to lock your server or turn it off so that it cannot be accessed until you turn it back on. And just like Serv-U FileZilla also allows you to control access to files based on users and groups that you have created. This FTP server uses a tabbed interface which makes it really easy to manage multiple concurrent sessions. I have heard of cases where sessions timed out after 15 minutes even while transfers are still active but this is not a problem that I experienced when I tried the product.
FileZilla also offers a paid version of their software, the Filezilla Pro, which includes additional features such as the ability to transfer files between a client and cloud storages. Some of the supported cloud protocols include WebDav, Amazon S3, Backblaze B2, and Dropbox.
3. WS_FTP Server
Most people know Ipswitch because of their Whatsup Gold Network performance monitor but not as many of them know about their impressive FTP server software. The WS_FTP Server. The tool gives you full visibility into your file transfers and allows you to control how users and groups in your network interact with the FTP server. You dictate whether a certain user has the permission to download, upload, delete or rename files on the server. The server software can be accessed through a web console allowing you to manage your FTP servers from virtually anywhere with internet access.
WS_FTP server also incorporates various security features to ensure secure data transfer. These include 256-bit AES encryption of the data in transit, support for SSH and SCP transfers, SSL, certificate option, and authentication of the client computer. The login details are encrypted which makes it almost impossible for hackers to decrypt.
A good thing about this software is that it can also work on virtual servers and includes email notifications for the end-user. But one thing that really distinguishes WS_FTP from other solutions is the integrated Ad hoc module that facilitates person-person file transfers for files of up to 4GB. It is the perfect way to offload the burden of attaching files from the email server.
Nonetheless, my favorite feature about this FTP server is the Failover capabilities. It uses cluster technology to allow automatic and unattended failover of the file, database and application servers in your network. This means that when the primary server fails then a secondary server assumes its place and as a result, you will have minimum transfer failures.
And then, of course, there is the fact that you can integrate this tool with the Ipswitch MOVEit Automation software to automate various file transfer workflows without having to use scripts.
4. Wing FTP
Wing is not a popular name like the other tools we have already mentioned but it’s an excellent program regardless. It is the perfect tool for entreprises and boasts of great flexibility. It can be deployed on multiple environments such as Windows, Mac OS, Linux, and Solaris and apart from FTP, it’s also compatible with SFTP and HTTP/S protocols.
Wing FTP is implemented through a web interface allowing you to administrate the FTP server from anywhere. The tool will be great for tracking important server updates like the condition of currently active sessions and also, the server’s performance info. It even sends email alerts to notify you of these events.
Wing has a free FTP server solution but only for personal use. In any case, it would be hard to use it in a business setting based on the limitations. It only allows 10 user accounts and only 10 connections at any particular time. If you are looking for an FTP server software for a commercial setting then you can start with their fully functional 30-day trial.
I also love that the tool comes with an Android and iOS app to facilitate easy transfer of files between the server and mobile phones. You can also utilize weblink and upload link features that allow you to download and upload files without having to log in to the FTP server.
Wing FTP server takes security seriously and includes features such as IP-based access and Session expiration as evidence of this. Anti-hammering is a dedicated feature that ensures that hackers cannot access the FTP server through a brute-force attack. Additionally, it uses FIPS 140-2 cryptographic module to encrypt your login details.
Another feature you will love about this FTP server software is the task scheduler which allows you to use scripts to schedule transfers.
Every event that takes place in the FTP server is logged into the database and can be accessed later or used to generate reports. All of which can help in troubleshooting file transfer problems.
5. Xlight FTP Server
Xlight FTP Server is another product that literally lives up to its name. It’s a portable solution with a very small footprint on your system. But that does not in any way undermine its performance and the tool can be used to execute thousands of simultaneous FTP connections.
The tool can be integrated with the Microsoft AD, LDAP, and your existing database allowing you to store the user data and settings here. All the events happening in the server will also be stored in the Database. The tool supports transfer over both IPv4 and IPv6 addresses and the data is encrypted using the SSL and SSH security standard.
Also, Xlight FTP Server sends email alerts for various activities such as file uploading, downloading, user log-in and logout. The alerts can be customized to suit each user.
ubuntu ftp server
If you are looking to install an FTP server on Ubuntu, you can’t beat the simplicity of vsftpd .
FTP stands for File Transfer Protocol. It is similar to HTTP (HyperText Transfer Protocol), in that it specifies a language for transferring data over a network. FTP is unencrypted by default, so by itself, it is not a good choice for secure transmission of data.
This guide will help you install and configure an FTP server with vsftpd on Ubuntu.
- Access to a user account with sudo privileges
- Access to a terminal window/command line (Ctrl-Alt-T)
- The apt package manager, included by default
Step 1: Update System Packages
Start by updating your repositories – enter the following in a terminal window:
sudo apt update
The system proceeds to update the repositories.
Step 2: Install vsftpd Server on Ubuntu
A common open-source FTP utility used in Ubuntu is vsftpd. It is recommended for its ease of use.
1. To install vsftpd, enter the command:
sudo apt install vsftpd
This is an example of the output in Ubuntu.
2. To launch the service and enable it at startup, run the commands:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
Note: Instruction for setting up and configuring FTP server with vsftpd is also available for CentOS 7 and Rasberry Pi.
Step 3: Backup Configuration Files
Before making any changes, make sure to back up your configuration files.
1. Create a backup copy of the default configuration file by entering the following:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
Step 4: Create FTP User
Create a new FTP user with the following commands:
sudo useradd -m testuser sudo passwd testuser
The system should ask you to create a password for the new testuser account.
Step 5: Configure Firewall to Allow FTP Traffic
If you are using UFW that comes standard with Ubuntu, it will block FTP traffic by default. Enter the following commands to open Ports 20 and 21 for FTP traffic:
sudo ufw allow 20/tcp sudo ufw allow 21/tcp
Note: If you are using a different firewall, refer to the instructions to allow access on Port 20 and Port 21. These are the listening ports for the FTP service.
Step 6: Connect to Ubuntu FTP Server
Connect to the FTP server with the following command:
sudo ftp ubuntu-ftp
Replace ubuntu-ftp with the name of your system (taken from the command line).
Log in using the testuser account and password you just set. You should now be successfully logged in to your FTP server.
Configuring and Securing Ubuntu vsftpd Server
Change Default Directory
By default, the FTP server uses the /srv/ftp directory as the default directory. You can change this by creating a new directory and changing the FTP user home directory.
To change the FTP home directory, enter the following:
sudo mkdir /srv/ftp/new_location sudo usermod -d /srv/ftp/new_location ftp
Restart the vsftpd service to apply the changes:
sudo systemctl restart vsftpd.service
Now, you can put any files you want to share via FTP into the /srv/ftp folder (if you left it as the default), or the /srv/ftp/new_location/ directory (if you changed it).
Authenticate FTP Users
If you want to let authenticated users upload files, edit the vsftpd.conf file by entering the following:
sudo nano /etc/vsftpd.conf
Find the entry labeled write_enable=NO, and change the value to “YES.”
Save the file, exit, then restart the FTP service with the following:
sudo systemctl restart vsftpd.service
This allows the user to make changes inside their home directory.
Note: To learn more about using FTP, refer to our in-depth guide on Linux ftp command.
Numerous exploits take advantage of unsecured FTP servers. In response, there are several configuration options in vsftpd.conf that can help secure your FTP server.
Limit User Access
One method is to limit users to their home directory. Open vsftpd.conf in an editor and uncomment the following command:
This is an example of the file in nano:
Create a User List File
To create a list file, edit /etc/vsftpd.chroot_list, and add one user per line.
Instruct your FTP server to limit this list of users to their own home directories by editing vsftpd.conf:
The image ilustrates the edits that were made:
Restart the vsftpd service:
sudo systemctl restart vsftpd.service
By default, the list of blocked users from FTP access is stored in /etc/ftpusers. To add blocked users, edit this file and add one user per line.
Encrypt Traffic With FTPS
Another method to secure your FTP server is to encrypt the traffic. This is done by using FTPS – File Transfer Protocol over SSL (Secure Socket Layer).
For this to work, users need to be set up with a shell account on the FTP server. This will add a layer of secure encryption to your FTP traffic.
1. Start by creating a new certificate with openssl. To do so, run the command:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
2. Provide the required information when prompted or keep the default configuration by pressing Enter.
3. Next, open your vsftpd.conf file in an editor and change the line
4. Then, add the following lines:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH pasv_min_port=40000 pasv_max_port=50000
5. Save the changes and exit the file.
6. Finally, restart the service to apply the changes:
sudo systemctl restart vsftpd.service
Note: For more information on SSL configurations and certificates, please see the Ubuntu FTP server documentation. Also, it’s worth noting that FTPS is a different protocol that SFTP. SFTP stands for Secure File Transfer Protocol, and it’s an entirely different protocol.
Now, you should have installed an FTP server on Ubuntu with vsftpd.
You should now be able to configure your user lists and accounts, and connect to your new FTP server. We also detailed the risks of the FTP protocol, and how to mitigate them.