FTP reply code 229 is the response to an EPSV (Extended Passive Mode) command, defined in RFC 2428. Unlike 227 (PASV) which embeds the IP address in the response, EPSV only returns the port number — the client connects to the same IP address used for the control connection. The response format is 229 Entering Extended Passive Mode (|||port|). EPSV solves the NAT problem that plagues PASV responses where the server reports a private IP that the client cannot reach. EPSV also supports IPv6, while PASV only works with IPv4. Modern FTP clients and servers should prefer EPSV over PASV.
The client sent EPSV to use extended passive mode. The server opened a listening port and responded with 229 containing only the port number. The client connects to the control connection's IP on the specified port.
When using FTP over IPv6, EPSV is required because the older PASV command (227) cannot encode IPv6 addresses. All IPv6-capable FTP clients use EPSV automatically.
The client uses EPSV to avoid the NAT IP problem in PASV responses. Since EPSV does not include an IP address, the client connects to the same IP it used for the control connection, which is always correct even through NAT.
The response format (|||port|) contains just the port number. Connect to the same IP used for the control connection on this port to establish the data channel.
Some older FTP servers do not support EPSV. If you receive a 500 or 502 error, fall back to PASV. Most FTP clients handle this fallback automatically.
The server's passive port range must be open in the firewall. EPSV uses the same port range as PASV — the only difference is how the address is communicated to the client.
Scan PortsThe server is entering passive mode and has provided the IP and port for the data connection.
The server is ready to transfer the file and is about to open the data connection.
The server could not establish the data connection needed for the file transfer.
The FTP command was understood and executed successfully.