当前位置: 首页 > 知识库问答 >
问题:

Android FTP错误-425无法打开数据连接

麻宾白
2023-03-14

我用这个上传一些文件。如果我在本地连接中,它可以工作,但如果我使用外部连接,我会收到以下消息:425无法打开数据连接 来自ftp服务器。

我使用org.apache.commons.net.ftp.FTPClient和org.apache.commons.net.ftp.FTPFile库。

public static String gravaImagem(String photoFile) {
    FTPClient mFtp = new FTPClient();
    try {
    mFtp.connect(FTPHOST, PORTA);
    mFtp.login(USUARIO, SENHA);
    mFtp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
    mFtp.setFileType(FTPClient.BINARY_FILE_TYPE);
    String origem = Environment.getExternalStorageDirectory().getPath()+File.separator+"Pictures"+File.separator+"ImageSec"+File.separator+photoFile;
    FileInputStream fis = new FileInputStream(origem);
    mFtp.storeFile(photoFile, fis);
    mFtp.logout();
    mFtp.disconnect();
    } catch (SocketException e) {
    e.printStackTrace();
    return "Fail. (ERR#CON3)";
    } catch (IOException e) {
    e.printStackTrace();
    return "Fail. (ERR#CON4)";
    }
    return "Imagem enviada ao servidor.";
}

调试没有显示异常。


共有1个答案

洪增
2023-03-14

从互联网:

首先-最常见的解决方案:更改主动/被动模式设置。但这可能不起作用,如果它仅仅是一个创可贴掩盖了真正的问题。

正如我在过去提到的,发生此错误的最常见原因之一是FTP服务器软件本身的错误配置,与SSL连接和防火墙有关,其中连接试图在伪造的ip地址上建立自身。阅读更多关于通过NAT防火墙的FTP SSL的信息,这里包括一些潜在的解决方案。

还有其他不太可能的原因,例如:

  • 服务器被配置为始终使用同一端口进行被动模式连接,或者客户端被配置为始终使用同一端口进行主动模式连接,尽管在这种情况下,相关软件通常会首先引发不同的错误,但我看到了这种情况
  • 在被动模式下,FTP服务器前面的防火墙没有打开正确的端口。因此,服务器告诉客户端连接到端口x上的ipaddress 1.2.3.4,但防火墙不允许在端口x上进行传入连接。大多数防火墙都足够智能,可以在看到PASV响应时打开端口。对于活动模式和FTP客户端前面的防火墙,反之亦然

从我:我用这个库在andoaird和它工作得很好,所以看到我的复制/粘贴部分。

 类似资料:
  • 我正在使用Teamcity在FTP中部署我的Web应用程序。在周一之前,部署工作一直很顺利。现在它不再工作了。我没有对Teamcity做任何更改。问题:FTP传输正常启动。一些文件被传输。然后它会中断FTP错误:“425无法打开数据连接”。FTP部署在我的所有其他Web应用程序上都可以正常工作。关于这个问题你能给我一个提示吗?teamcity步骤配置 日志: [13:57:10]i:[步骤1/1]

  • 我正在使用Teamcity在FTP中部署我的Web应用程序。在周一之前,部署工作非常顺利。现在它不再起作用了。我没有对团队城做任何修改。问题:FTP传输正常启动。有些文件被转移。然后它以FTP错误中断:“425无法打开数据连接”。FTP部署在我的所有其他Web应用程序上都运行良好。你能给我一个关于这个问题的提示吗?TeamCity step配置 日志: [13:57:10]I:[步骤1/1]<25

  • 我需要编写一个连接到FTP服务器的应用程序。此FTP服务器不允许被动模式连接。我可以使用Filezilla连接到FTP服务器。 我开发了一个C#WCF服务,它使用FTPWebRequest类连接到此FTP服务器。以下是FTPWebRequest对象的基本设置: 当我从Visual Studio(Ctrl F5)运行WCF服务时,它连接到FTP服务器并下载所需的文件,没有任何问题 但是,当我在本地I

  • 我正在尝试用Java从头开始创建一个FTP客户端。 我使用Filezilla作为服务器,可以连接到某个点。我的意思是,我有命令端口工作,但无论我搜索多少,我都无法连接数据端口。 我找过的所有网站都说问题与防火墙和/或路由器有关,但是,当我尝试使用Filezilla客户端连接到服务器时,一切都很顺利。 到目前为止我所拥有的: 将我登录到服务器并断开连接。为了解决这个问题,我在线程中添加了一个infi

  • 我使用Windows服务器Xampp 1.8.3和安装FileZilla FTP服务器= 我打开端口20,21,30。

  • 我尝试制作一个FTP客户端,它在活动模式下上传一个文件(C和linux的socket库)。当我想在本地服务器(LAN)上发送文件时,我的程序工作,但当我想在远程服务器(WAN)上发送文件时,它不工作。我有一个错误425无法打开数据连接。我做了很多研究,通常这个问题来自NAT(它可能会阻塞数据连接端口)。但是我试过使用Filezilla(在活动模式下),它成功了。所以我没有发现数据连接的问题在哪里。