【问题标题】:apache ftpclient get unknownHostException while linux ftp command sucessfully connectlinux ftp命令成功连接时apache ftpclient得到unknownHostException
【发布时间】:2022-10-23 12:41:21
【问题描述】:

如文档所述,我使用了Apache FTP Client 库。我已经这样做了:

FTPClient ftp = new FTPClient();
String server = "172.166.166.17";
ftp.connect(server);// or ftp.connect(server,21)
System.out.println("Connected to " + server + ".");
System.out.print(ftp.getReplyString());

它在开发环境中运行良好,但在实时环境中出现以下错误:

java.net.UnknownHostException: 172.166.166.17 : Name or service not known 

我要求网络团队检查通信,他们回答说因为 Telenet 和 Linux FTP 命令有效,他们不能做更多。

这是他们的命令和他们的回应:

$ ftp 172.166.166.17
connected to 172.166.166.17(172.166.166.17).
220 Welecome to IIP FTP service!

我在很多项目中都使用过这个库,从来没有遇到过这个错误。我想知道这个问题的原因是什么,我该如何解决。

【问题讨论】:

  • 您是否在与 Java 代码相同的机器上运行 telnet/ftp?向我们准确展示您使用 telnet 和 ftp 所做的工作。
  • 没有,在另一台机器上开发,我让网络团队检查通信,他们回答说 telnet 和 Linux ftp 命令可以正常工作
  • 那么,您可以从 Java 代码无法连接的机器上进行连接吗? = 你能证明吗?

标签: java linux ftp apache-commons-net


【解决方案1】:

对于那些可能有类似问题的人, 我发现 172.166.166.17 不是实际 IP 和网络团队NATed(网络地址转换)将实际 IP 转换为另一个。因此,通过指向实际 IP,问题得到了解决。

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多