0

我无法通过 Java 代码连接到远程已知服务器;连接时的异常是 java.net.NoRouteToHostException: No route to host。

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

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

Socket socket = new Socket(ServerIP ServerPort);

需要的端口在服务器上是开放的,以便外部请求可以进来。

以下再次返回 false

InetAddress.getByName(SERVER_IP).isReachable(1000)

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

仅供参考:Java 无法从 AIX 解析 DNS 地址:UnknownHostException与我的问题几乎相同,但不知何故这与 AIX 无关;此外,我觉得这个问题更多的是网络或防火墙问题。

请指导我。

4

3 回答 3

0

此外,您还应该检查您的.ssh/config文件,可能Hostname为您在命令行上使用的名称定义了不同的名称。

于 2009-09-07T12:23:28.877 回答
0

我建议进行测试以缩小问题范围:

  1. 你能远程登录到主机/端口吗?
  2. Java 可以成功连接到任何其他主机/端口吗?
  3. 您使用的是主机名还是 IP 地址 - 请尝试您不使用的主机名或 IP 地址。
  4. 任何一台计算机都运行防火墙吗?
于 2009-09-07T12:10:10.243 回答
0

/etc/hosts 呢?也许它会以某种方式干扰?只是一个猜测。

于 2009-09-08T22:43:54.477 回答