我有一个播放应用程序连接到 1.2.3.4 的数据库,但出于某种原因播放!(以及其他 Java 应用程序)无法连接到它。
我确实尝试编辑主机文件并为 IP 设置一个名称,app01 1.2.3.4
但是它只适用于托管数据库的盒子,它不适用于外部机器。我可以确认在 iptables 中打开了正确的端口,并且我也尝试过重新启动它。
如果我从同一个盒子在 1.2.3.4 的 4567 端口 ping postgres,它就可以工作。但是在我的 java 应用程序中设置相同的 IP 地址失败。怎么了?是权限问题还是 iptables 问题?谢谢。
堆栈跟踪:
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at org.postgresql.core.PGStream.<init>(PGStream.java:62)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
... 35 more