1、在应用程序中调用不同服务时,经常会遇到No route to host程序异常的问题。如下图所示部分日志截取如下:Caused by: java.net.NoRouteToH泠贾高框ostException: No route to hostat java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_91]at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_91]at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_91]at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_91]at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_91]at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_91]at java.net.Socket.connect(Socket.java:538) ~[na:1.8.0_91]at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_91]at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) ~[na:1.8.0_91]at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) ~[na:1.8.0_91]at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) ~[na:1.8.0_91]at sun.net.www.http.HttpClient.New(HttpClient.java:308) ~[na:1.8.0_91]at sun.net.www.http.HttpClient.New(HttpClient.java:326) ~[na:1.8.0_91]at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1169) ~[na:1.8.0_91]
2、使用telnet <目标机器IP> <目标端口号> 命令可判断目标机器的端口是否开放
3、登录楫默礤鲼目标服务器,查看防火墙状态:serviceiptablesstatus使用 iptables --list 命令可查看到当前服务器防火墙的配置。(注意:命令使用需要切换至Linux系统Root用户下)
4、发现目标机器相应端口没有开放,输入下面命令开放端口:#iptables开放端口命令iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
5、最后,在调用的机器上使用telnet 命令验证,发现目标端口可通信,如下图所示。