12

我正进入(状态

Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564)
at sun.reflect.GeneratedMethodAccessor638.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:130)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)

javadoc

表示尝试将套接字连接到远程地址和端口时发生错误的信号。通常,由于中间防火墙或中间路由器已关闭,无法访问远程主机。

这个错误是在客户端还是远程端,或者它可以是其中任何一个?

4

6 回答 6

9

基本上它说您的客户端无法连接到服务器,因为客户端计算机无法访问该地址。

请通过命令提示符 (Windows) 或终端(基于 Unix)中的ping命令检查您要连接的地址是否可访问:

ping <address>

或者如果它是一个网络服务器,你可以尝试在你的网络浏览器中检查它。
在大多数情况下,ping 命令对我很有帮助,因为我知道为什么我无法连接到该地址。它可能是一个错误的地址,或者像 javadoc 建议的那样,是防火墙的问题。

于 2013-03-28T16:33:45.493 回答
6

任何一个。它可能是客户端计算机上阻止传出呼叫或另一端某处的防火墙。

于 2013-03-28T15:59:22.373 回答
2

ping 可能会提供响应,但应用程序仍可能无法连接。如果是这种情况,我建议使用 telnet 尝试使用所需端口连接到主机,telnet host.address port

如果连接被拒绝,则需要允许主机上的端口。它成功了,但应用程序仍然无法连接:

  1. 验证应用程序中使用的地址:端口与 telnet 测试中使用的相同。
  2. 它可能是客户端上的本地端口阻止连接,在这种情况下,您需要允许客户端上的端口
于 2020-03-26T14:42:51.927 回答
-1

就我而言,它是这样解决的:

1 - 使用 'yarn cache clean' 或 'npm cache clean --force' 清除缓存

2 - 之后重新启动电脑。

如果您清除缓存但不重新启动,则数据仍将存储在网络上的“某处”,因此端口将无法连接,它仍然很忙。重启后就可以顺利连接了。

我希望我有帮助!

于 2020-12-27T13:09:22.650 回答
-2

我有同样的问题,并通过禁用双方的防火墙解决它:

systemctl 禁用防火墙

服务防火墙停止

于 2020-03-26T14:21:42.493 回答
-4

我有同样的问题,我确实在主机服务器上运行了 iptables flush,这解决了这个问题。

# iptables --flush 
于 2018-07-05T22:04:49.533 回答