2017-08-25 197 views
1

我有一個典型的內部羣集,包含登錄節點和多個計算節點。首先,我運行帶有以下參數的JVM實例,讓我的IntelliJ調試器連接到它。調試 - IntelliJ無法連接到遠程服務器上啓用調試的JVM

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 

此登錄節點有一個可公開訪問的地址,我主要用它來啓動作業。但是,當我嘗試將IntelliJ調試器附加到此節點上的JVM實例時,該連接只是它的時間並且無法連接,而我的JVM實例確實以掛起模式啓動,等待調試器連接到它。

IntelliJ Remote debug configuration

更新: 最初的問題似乎是,我得到無法訪問超過22端口,我用它來使用SSH連接它的其他我的服務器上的任何其他端口。無論如何,我能夠創建一個SOCK5代理,配置的IntelliJ使用該代理,然後成功地測試連接,以及,如下所示:

Testing the connection at the host:port the debugger is listenning at

調試控制檯上的輸出顯示的IntelliJ是能夠成功通過HTTP請求訪問指定主機名上的端口,而不是JWP端口。

Debugger console output

然而,當我再進行連接調試到同一主機:端口組合,我不能這樣做,收到以下錯誤:

Debugger error

我有也嘗試設置suspend=n但無濟於事。

+0

你可以從那裏的IntelliJ IDEA運行的機器遠程登錄到指定的地址/端口?如果沒有,這是一個與IDE無關的防火牆/網絡問題。 – CrazyCoder

+0

像所描述的[這裏](https://stackoverflow.com/questions/975271/remote-debugging-a-java-application),嘗試用'suspend = n'啓動JVM。 – Sam

+0

@CrazyCoder,請查看我對原始問題所做的更新。 –

回答

2

ssh -L 5005:localhost:5005 [email protected]

將映射到localhost:5005端口5005myserver.com(還localhost接口的myserver.com)。這樣在IntelliJ IDEA調試器中,您將連接到localhost(在主機字段中指定它)端口5005,並且連接將被轉發到調試器在localhost:5005上偵聽的遠程服務器。

here更多細節SSH隧道是如何工作的