You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "daniel damon (JIRA)" <ji...@apache.org> on 2011/03/05 01:47:45 UTC

[jira] Commented: (NET-363) Can't connect to a server behind firewall in passive mode

    [ https://issues.apache.org/jira/browse/NET-363?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13002888#comment-13002888 ] 

daniel damon commented on NET-363:
----------------------------------

Here is a diff for changes that I made that work for me:

28a29
> import java.net.SocketException;

285c286
<     

---
>     private boolean __useRemoteAddress = false;

592c593,602
<             socket = _socketFactory_.createSocket(__passiveHost, __passivePort);

---
>             //if __passiveHost fails, try the original InetAddress. Server may be behind firewall.

>             if (__useRemoteAddress) {

>               socket = _socketFactory_.createSocket(getRemoteAddress().getHostAddress(), __passivePort);

>             }else try {

>               socket = _socketFactory_.createSocket(__passiveHost, __passivePort);

>             } catch (SocketException e) {

>               socket = _socketFactory_.createSocket(getRemoteAddress().getHostAddress(), __passivePort);

>               __useRemoteAddress=true;

>             }

>             



> Can't connect to a server behind firewall in passive mode
> ---------------------------------------------------------
>
>                 Key: NET-363
>                 URL: https://issues.apache.org/jira/browse/NET-363
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 2.2
>         Environment: Windows Client with Zos mainframe server behind a firewall.  However I think any client/server will demonstrate the issue as long as the server is behind a firewall.
>            Reporter: daniel damon
>            Priority: Blocker
>
> 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

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira