2010-10-17 20 views
0

我有一個服務器和客戶端程序。客戶端是一個Java小程序。
此前我可以在服務器上運行服務器程序,並且客戶端通過套接字的適當端口成功連接到服務器程序。如何使套接字連接到服務器只能通過Java小程序中的另一臺服務器訪問的服務器?

現在,我切換到一個新的服務器,我有這個服務器的問題。
直接連接(ssh)到這個服務器(假設它是server1)是不可能的。
我可以連接server2(ssh),然後可以通過server2(ssh)連接到server1。

所以,現在我的Java小程序無法連接到server1,它給連接錯誤。

你有什麼意見我的小程序如何可以連接到server1?

+0

你是說,你的小程序連接到server1並獲得期待? – 2010-10-17 20:36:54

+0

沒有例外。它只是不連接。當我「ping」到shell中的服務器時,我也沒有得到迴應。關於端口轉發的 – ogzylz 2010-10-17 21:15:30

回答

0

如果你想要一個具有特定公共訪問權限的服務器,你應該專注於擁有公共訪問權限,而不是試圖將每臺服務器彼此連接(通過ssh)。

一個簡單的事情,你可以做的例子是從公共可訪問服務器到你的實際服務器(包含Java應用程序)的簡單端口轉發。使用此解決方案,您只需更改客戶端,以便連接到可訪問的服務器。

+0

:我的applet可以通過server1訪問,並且applet只能連接到訪問它的服務器。所以端口轉發不能是我猜的選項? – ogzylz 2010-10-17 20:35:18

+0

@ogzylz,最簡單的方法是允許直接訪問你的server1或者讓你的applet只能從server2訪問。 – 2010-10-17 20:36:28

+0

但他們不可能不幸..我只需要另一個soln'.. – ogzylz 2010-10-17 20:38:36

0

如果您無法連接到服務器上的特定端口,則可能與防火牆有關。

據我所知,Linux防火牆不允許外部連接到端口,如果他們沒有被定義爲「允許」,在iptables中。

你應該修改iptables連接到正確的端口。
More on iptables

+0

這是有道理的,但不幸的是,我不是一個sudo實施者。所以我不能檢查它是否被允許,但無論如何感謝.. – ogzylz 2010-10-17 21:06:15

+0

你知道任何始終可用的端口,以便我可以使用它們嗎?我正在使用第42420端口.. – ogzylz 2010-10-17 21:10:31

+0

@ogzylz 1024以上的任何端口都不應該問你SU的權力。 – 2010-10-17 21:24:27

相關問題