使用 JAVA 到远程服务器的 FTP 连接

Posted

技术标签:

【中文标题】使用 JAVA 到远程服务器的 FTP 连接【英文标题】:FTP connection to a remote server with JAVA 【发布时间】:2016-05-31 19:53:19 【问题描述】:

我尝试使用 Apache 公共库中的 FTP 连接到远程服务器。但我无法连接到此服务器..我遇到了异常:

java.net.ConnectException:连接超时:连接 在 java.net.DualStackPlainSocketImpl.connect0(本机方法) 在 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(Socket.java:589) 在 org.apache.commons.net.SocketClient.connect(SocketClient.java:188) 在 org.apache.commons.net.SocketClient.connect(SocketClient.java:209) 在 de.download.Info4c.start(Info4c.java:95) 在 de.download.Info4c.main(Info4c.java:67)

这是我的代码:

FTPSClient client = new FTPSClient(false);
    client.connect("<IP>",990);     
    int reply =  client.getReplyCode();
    if (FTPReply.isPositiveCompletion(reply)) 
        if(client.login(user, pass))
            // Set protection buffer size
            client.execPBSZ(0);
            // Set data channel protection to private
            client.execPROT("P");
            // Enter local passive mode
            client.enterLocalPassiveMode();
        
    

【问题讨论】:

应该替换为您尝试连接的服务器的地址。您是为了发布问题而自己掩盖了它,还是实际上”是您在程序中使用的? @Neil 标签包含我的远程服务器 IP。我没有任何名字,只有 IP,所以在我要连接的服务器上运行的是 windows server 2012,它只是一个远程服务器。 尝试使用ping &lt;IP&gt; 测试服务器是否存在总是一个好主意。如果它响应,请按照@duffymo 的建议检查端口。否则,您的问题是从您的 PC 上看不到该服务器。这并不一定意味着服务器关闭!可能是防火墙或其他因素。 尝试添加运行属性-Djava.net.preferIPv4Stack=true @user3515460:检查现有的 ftps 客户端应用程序,您可以访问 ftps 服务器。也许它被防火墙阻止了,或者它没有在服务器上运行。 【参考方案1】:

如果远程服务器位于防火墙后面,也许您应该使用正确的 代理 来访问它。您的互联网选项中有系统代理吗?然后,通过标准的Java networking properties配置JVM来使用它。

【讨论】:

就是这样!我在防火墙中打开了一个端口,现在它可以工作了..THX

以上是关于使用 JAVA 到远程服务器的 FTP 连接的主要内容,如果未能解决你的问题,请参考以下文章

java连接远程服务器

WebSublime Text 3 连接sftp/ftp(远程服务器)

如何使用filezilla连接远程服务器

我的FTP能够链接到VPS,但是无法显示远程文件夹 请问是怎么回事?

如何用java实现ftp客户端程序

ftp介绍和搭建