- Plesk for Linux
- Public IP address is set at Tools & Settings > IP Addresses > 192.0.2.2.
- Local clients cannot use FTP Passive mode when connecting via the private IP address of the server, the FTP client hangs:
#ftp -pv 192.0.2.2
Connected to 192.0.2.2.
220 ProFTPD 1.3.5d Server (ProFTPD) [203.0.113.2]
Name (192.0.2.2:user): ftp1
331 Password required for ftp1
230 User ftp1 logged in
Remote system type is UNIX.
Using binary mode to transfer files.
227 Entering Passive Mode (203,0,113,2,167,230).
The issue is caused by ProFTPd limitations. Plesk creates a 'MasqueradeAddress=Public_IP' entry for an FTP server to return to clients and ProFTPd does not differentiate local and remote clients, returning the same public IP address for both types.
As a workaround, access the FTP server only via public IP address, even as a local client. It will not impact on quality of the connection:
# traceroute 203.0.113.2
traceroute to 203.0.113.2 (203.0.113.2), 30 hops max, 60 byte packets
1 203.0.113.2.rdns.example.com (203.0.113.2) 1.348 ms 1.443 ms
# traceroute 192.0.2.2
traceroute to 192.0.2.2 (192.0.2.2), 30 hops max, 60 byte packets
1 * test-vm.router.internal (192.0.2.2) 1.308 ms 1.301 ms