Details
Description
When the FTP server is behind a firewall, FTPClient can connect, but it cannot transfer data. This is because the FTP server provides it's own address instead of the firewall address to make the connection. I have confirmed the problem by hacking a copy of FTPClient to set the __passiveHost to the appropriate internet address. With this hack, I can transfer data.
Perhaps the FTP server could be configured differently to fix the issue. Unfortunately, I do not have access to the server configuration. I do know that the commercial product IpswitchFtp does deal with the issue as this extract from it's log shows:
------------
PASV
227 Entering Passive Mode (192,168,13,11,195,129)
connecting data channel to 192.168.13.11:195,129(50049)
Substituting connection address 159.106.121.79 for private address 192.168.13.11 from PASV
data channel connected to 159.106.121.79:195,129(50049)
LIST
125 List started OK
transferred 4157 bytes in 0.078 seconds, 425.688 kbps ( 53.211 kBps), transfer succeeded.
250 List completed successfully.
QUIT
----------------------------
I can take a shot at a fix if you want. I'll set some timeout, and if that fails, I'll use the original address
Attachments
Issue Links
- is duplicated by
-
NET-296 java.net.SocketException: Operation timed out error while entering Passive mode
- Closed