使用 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();
【问题讨论】:
ping <IP>
测试服务器是否存在总是一个好主意。如果它响应,请按照@duffymo 的建议检查端口。否则,您的问题是从您的 PC 上看不到该服务器。这并不一定意味着服务器关闭!可能是防火墙或其他因素。
尝试添加运行属性-Djava.net.preferIPv4Stack=true
@user3515460:检查现有的 ftps 客户端应用程序,您可以访问 ftps 服务器。也许它被防火墙阻止了,或者它没有在服务器上运行。
【参考方案1】:
如果远程服务器位于防火墙后面,也许您应该使用正确的 代理 来访问它。您的互联网选项中有系统代理吗?然后,通过标准的Java networking properties配置JVM来使用它。
【讨论】:
就是这样!我在防火墙中打开了一个端口,现在它可以工作了..THX以上是关于使用 JAVA 到远程服务器的 FTP 连接的主要内容,如果未能解决你的问题,请参考以下文章
WebSublime Text 3 连接sftp/ftp(远程服务器)