~3 min read • Updated Feb 24, 2026
1. Overview
This guide explains how to upload and download files using FTP through a third‑party client or the command‑line interface. It also includes advanced configuration for ProFTPD Host Access Control.
2. Connect to an FTP Server with a Third‑Party Client
To connect using a third‑party FTP client, follow these steps:
- Create an FTP account in cPanel’s
FTP Accountsinterface. - Click
Configure FTP Clientnext to the desired account. - If a configuration file is available (e.g., for Cyberduck® or WinSCP), download and open it.
- If no configuration file is provided, configure the client manually using the following details:
Server Protocol: FTPServer Name: Domain name or server IPUsername: Must match the exact format shown in cPanelPassword: Your FTP passwordPort: Defaults to 21
Important: The username must match the exact format shown in cPanel, such as [email protected].
3. Connect to an FTP Server from the Command Line
- Open a CLI window on your local machine.
- Enter the
ftpcommand:
ftp- Enter
opento start a connection:
ftp> openWhen prompted, enter your server’s IP address:
(to) 0.0.0.0You will see a response similar to:
220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
Name (0.0.0.0:example):Enter your FTP username and password. If successful:
230 OK. Current restricted directory is /.If login fails:
530 Login authentication failed4. Upload a File from the Command Line
After connecting to the FTP server:
- Navigate to the destination folder using
cd:
ftp> cd public_html- Use the
putcommand to upload a file:
ftp> put localmachine:\unfinished-documents\finalized-doc.txtImportant: Files must be uploaded to public_html to be visible on your website.
5. Download a File from the Command Line
- Navigate to the file’s directory:
ftp> cd public_html/finalized-documents- Use the
getcommand:
ftp> get document-with-a-mistake.txt6. ProFTPD Configuration for Host Access Control
This section explains how to configure ProFTPD to restrict FTP access by IP address using Host Access Control.
Warning: This is an unsupported workaround and may not work in future versions.
System Requirements
ProFTPDversion 1.3.3 or latermod_wrapmodule installed
Verify installation:
proftpd -V | awk '/Version/ {print $0}; /mod_wrap/ {print "mod_wrap is installed"}'7. Create a VirtualHost Container
- Edit the
/etc/proftpd.conffile and add:
TCPAccessFiles /etc/hosts.allow /etc/hosts.deny
TCPServiceName ftpWarning: Both hosts.allow and hosts.deny must be specified.
- Restart ProFTPD:
/usr/local/cpanel/scripts/restartsrv_proftpd- Add deny rules to
/etc/ftpusers. - Test the configuration by logging in.
8. Example VirtualHost Container
<VirtualHost 10.1.1.1>
ServerName ftp.testserver.tld
AuthUserFile /etc/proftpd/wcraft
MaxClients 3 "Sorry, this ftp server has reached its maximum user count (%m). Please try again later"
DirFakeGroup On ftpgroup
DirFakeUser On ftpuser
DefaultRoot ~
TCPAccessFiles /etc/hosts.allow /etc/hosts.deny
TCPServiceName ftp
</VirtualHost>Written & researched by Dr. Shahin Siami