2012-05-16 26 views
0

我有一個播放應用程序連接到數據庫在1.2.3.4,但由於某種原因播放! (以及其他Java應用程序)無法連接到它。Java應用程序無法連接到IP,但我可以ping它

我曾嘗試編輯主機文件併爲IP設置名稱,如app01 1.2.3.4,但它只適用於託管數據庫的盒子,並且它不適用於外部機器。我可以確認在iptables中正確的端口是打開的,我也試過重新啓動它。

如果我在1.2.3.4來自同一箱ping通在端口4567的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 
+0

你真的擁有IP 1.2.3.4嗎?你的電腦有哪些IP?我認爲,錯誤消息說everythink ...你是不是在像1.2.3.4 ip – Tobi

+0

lol它實際上是72.15.xxx.xx我不想在這裏發佈真正的IP :) – crockpotveggies

+0

寫一些相同的子網你寫的代碼。 –

回答

0

您可以通過pgadmin(http://www.pgadmin.org/)連接到您的數據庫嗎? 您可以通過您的機器telnet到指定端口上的數據庫服務器(telnet 1.2.3.4 4567)嗎? 如果你不能telnet,也許數據庫服務器阻止你的連接? 您是否爲Java設置了任何代理服務器,或者僅爲系統的其餘部分設置了代理服務器? 從異常它似乎更多的網絡問題比任何與java ...

+0

現在通過PGAdmin檢查將會有一個更新很快 – crockpotveggies

+0

好的感謝提醒我的PGA :)它肯定有助於調試。問題是完全與網絡相關的。所以不知怎的iptables文件被覆蓋,端口被刪除。一定是一個升級。我調試它並修復。謝謝! – crockpotveggies

0

您可以檢查數據庫服務器上的防火牆設置。您可以通過telnet嘗試檢查您是否可以連接。

0

如果你在路由器後面,你將能夠ping從另一臺本地機器(使用本地IP),但你可能如果您沒有正確進行端口轉發,則無法從外部ping通(您可以從路由器進行配置)。

要記住的另一件事是,您不能從網絡內ping您自己的外部IP,這意味着您可以從192.168.1.xx(客戶端)ping 192.168.1.100(服務器),但是您無法從192.168.1.xx(客戶端)ping 72.15.xx.xx(端口轉發到192.168.1.100)。

爲了做到這一點,你必須使用外部工具,有許多網,可以爲你做這個,下面是我使用的方法:如果說,港口是

http://www.yougetsignal.com/tools/open-ports/

打開然後它是開放的,它現在應該工作,如果它顯示關閉,那麼你應該再次檢查你的防火牆是否允許數據,可能暫時關閉它,看看它是多少。

如果您需要幫助添加端口例外您的防火牆或路由器轉發端口只是告訴我,發行/ routerModel您正在使用的,我會盡力去挖掘一些更多的信息給你。

+0

看起來像是我花了太多的時間來添加這個回覆:P我很高興你修好了它,走了哥們的路! –

相關問題