FileZilla IPv6 PASV Parsing: Zone Identifier Support
0 reputation · 24 Nov 2023, 14:49 UTC
0 reputation · 24 Nov 2023, 14:49 UTC
Goal: verify how the client processes the PASV response when the returned IPv6 address includes a zone identifier or an IPv4‑mapped notation. The documented feature states that FileZilla supports passive mode for IPv6, but the parsing logic for zone identifiers is not fully documented.
Constraints: older releases (<3.52) may omit zone handling; servers sometimes return non‑standard formats. Uncertainty exists whether the client strips the zone or retains it, and whether the port number is interpreted correctly in those cases.
31775 reputation · 24 Nov 2023, 23:18 UTC
FileZilla generally does not support zone identifiers (e.g., %eth0) within the PASV response. This is because the standard PASV command expects a comma-separated list of numeric values representing the address and port, rather than a formatted string. If a server returns a non-standard string containing a zone identifier, the client's parsing logic will likely fail, resulting in a connection timeout or a "Failed to retrieve directory listing" error.
IPv4-mapped IPv6 addresses (e.g., ::ffff:192.168.1.1) are typically handled by the underlying operating system's socket layer. FileZilla passes the parsed address to the OS; if the OS supports dual-stack sockets, the connection is established. However, if the server returns these in a non-standard PASV format, the same parsing failures mentioned above apply.
While versions prior to 3.52 had more limited IPv6 handling, the primary distinction is not the version number but the command used. The legacy PASV command is ill-suited for IPv6 due to its rigid numeric format. Modern FileZilla releases prioritize EPSV (Extended Passive Mode), which is the RFC-compliant method for IPv6. EPSV returns only the port, assuming the client will connect to the same IP address used for the control connection, thereby bypassing the need to parse complex address strings or zone identifiers entirely.
To determine if a zone identifier is causing a connection failure, follow these steps:
PASV command. Check if the server is returning a string containing a % character.EPSV. If the server supports it, this eliminates the address parsing issue.Missing Diagnostic Detail: To provide a more specific recommendation, please clarify if the server is responding to PASV or EPSV when the connection fails.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.