【发布时间】:2016-02-15 08:28:39
【问题描述】:
我的 Windows 7 使用 FileZilla Server 提供 FTP 服务。另一方面,Debian 客户端想通过 Apache FTPsClient 访问 FTP 服务器。我构建客户端的方式如下图:
FTPSClient client = new FTPSClient("TLS", true);
client.setAuthValue(authValue);
client.configure(new FTPClientConfig(FTPClientConfig.SYST_UNIX));
client.connect("127.0.0.1", 990);
client.login("username", "password");
client.execPBSZ(0);
client.execPROT("P");
client.enterLocalPassiveMode();
使用 Windows 上的上述客户端,我可以成功检索 FTP 服务器中的目录列表。然而,Debian 上的同一个客户端无法连接到我的 Windows 服务器。有人可以帮我一把吗?非常感谢^^
Debian 客户端抛出以下异常:
java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:188)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:209)
虽然没有上述连接事件的日志。
【问题讨论】:
-
您应该针对以下几点来调试问题: 任何防火墙处于活动状态?为被动模式正确配置了 FTP 服务器?其他客户端可以正常连接吗?端口和IP地址是否正确?问题出现在连接的哪一步?应用程序是否抛出了堆栈跟踪?
-
感谢 Ferrybig。我的 Windows 主机的防火墙已关闭。我可以使用 FileZilla 客户端成功连接到我的 Debian 上的 Windows 主机。当 FileZilla Client 连接到主机时,我在 FileZilla Server 控制台上看到了正确的客户端登录,所以我相信服务器是好的。
-
您确定要使用 FileZilla 连接到端口 990 吗?向我们展示一个 FileZilla 日志文件。
-
嗨,马丁!你的意思是 FileZilla 客户端日志?
-
对不起,我误解了您问题中对 FileZilla 的引用。但是无论如何,是的,您是否能够使用来自 Debian 的任何(GUI?)FTP 客户端(例如 FileZilla 客户端)连接到您的服务器?