FTPShell
Home › Products › FTPShell Client › FXP transfers

FXP: server-to-server FTP transfers that skip your PC

FXP, the File eXchange Protocol, is a way of using plain FTP to copy files directly from one FTP server to another. The client logs in to both servers, tells one to listen and the other to connect, and the data flows between them while the client only issues commands. For moving a large archive between two hosts in a data centre it is many times faster than downloading and re-uploading over your own connection, and it uses none of your bandwidth. FTPShell Client runs FXP transfers in the Professional and Enterprise editions, on FTP sessions.

How it works

Open both servers in their own tabs and browse to the folders. Select files or folders on the source server and choose server to server transfer to the destination session. FTPShell issues PASV on one server and PORT on the other with the address it received, then RETR on the source and STOR on the destination, so the two servers exchange the data between themselves. Your upload rules decide what happens to files that already exist at the destination, and an FXP summary is written to the log when the batch finishes.

Why FXP fails, and what FTPShell does about it

FXP depends on both servers allowing a data connection to a third-party address. Many servers refuse it by default (vsftpd and ProFTPD have explicit settings for it), firewalls and NAT between the two hosts can block the data connection, and the two servers must agree on which side listens. If the destination refuses the connection FTPShell switches the source to passive and tries the other way round; if both sides refuse, the transfer has to go through your PC instead, which the transfer queue handles in the normal way. FXP is defined for plain FTP; SFTP and FTPS sessions do not support it.

When to use it

Moving a site between two hosting accounts, copying backups from a production server to an archive server, distributing a release to several mirrors, or any job where both ends are FTP servers and your own link is the slow part. For the last case, Upload to all sessions (Professional and Enterprise) sends a local file to every open session at once, and FTPShell Script can loop over a list of servers; see the upload to multiple servers example.

Questions people ask

What is FXP in FTP?

A server-to-server transfer: the client connects to two FTP servers and has them exchange a file directly, using the normal PASV, PORT, RETR and STOR commands. The data never passes through the client's connection.

Why does my FXP transfer fail?

Usually because one of the servers refuses data connections to a third-party address, or a firewall between the servers blocks the connection. Ask the server administrator whether site-to-site transfers are permitted; if they are not, the transfer has to go through your PC.

Does FXP work with SFTP or FTPS?

No. FXP is an FTP feature. SFTP has no equivalent, and FTPS servers rarely allow it because the encrypted data connection is between client and server.

Which edition of FTPShell Client includes FXP?

Professional and Enterprise, and the 30-day trial. See the editions.

How to transfer files between two remote servers, or between two servers, without downloading them

If both are FTP servers that allow it, open both in FTPShell (Professional or Enterprise) and use server to server transfer as described above; the data goes straight from one to the other. If either server is SFTP, or FXP is refused, the transfer goes through your PC: download to a local folder and upload again, which the transfer queue can do as one job, or let a script do both steps on a schedule.

FTPShell Client

Windows FTP, SFTP and FTPS client with a transfer queue, folder sync, remote search, scheduled tasks and scripting. The Personal edition is free.

Find out more about FTPShell Client



Download the Free Trial

Download FTPShell Client and try every Enterprise feature free for 30 days; it then continues as the free Personal edition.

Go to the Download Page



Buy a License

Professional and Enterprise licenses for FTPShell Client, and Pro, Secure Pro and Secure Plus licenses for FTPShell Server.

Find out more about Licensing Options



FTPShell Server

A simple FTP, FTPS and SFTP server for Windows with SSH shell and Telnet access. Free Personal edition.

Find out more about FTPShell Server



Operating System Requirements

FTPShell Client runs on Windows Vista, 7, 8, 10 and 11 and Windows Server 2003 through 2025. FTPShell Server runs on Windows XP, 7, 8, 10 and 11 and Windows Server 2003 through 2025.