通过 Java 客户端代码获取服务器的 UnknownHostException

通过 Java 客户端代码获取服务器的 UnknownHostException

我无法通过 Java 代码连接到已知远程服务器;尝试连接时出现 java.net.NoRouteToHostException:没有路由到主机异常。

但奇怪的是,我能够通过 ssh 连接到同一台服务器。

细节: 简单的 Java 客户端尝试与 Java 独立服务器建立连接时,连接时在以下语句处发生异常:

Socket socket = new Socket(ServerIP ServerPort);

服务器上需要打开端口,以便外部请求可以进入。

以下再次返回 false

InetAddress.getByName(SERVER_IP).isReachable(1000)

服务器在 Fedora、Java 5 上运行。

供参考:Java 无法解析 AIX 的 DNS 地址:UnknownHostException和我的问题几乎一样,但不知何故这既与 AIX 也与 DNS 无关;而且我觉得这个问题更多的是网络或防火墙问题。

请指导我。

答案1

这是主机被防火墙保护时会出现的错误。您能通过 telnet 连接到该 IP 上的同一端口吗?

答案2

  1. 构造函数应仅在为时Socket尝试解析,然后尝试解析本地主机。您的文件设置正确吗?hostNamenull/etc/hosts

  2. 以下代码返回什么?(请使用主机名,而不是 ip )。

    System.out.println(InetAddress.getByName(hostName));
    

相关内容