Java遠程Debug

來源:互聯網
上載者:User

標籤:例子   suspend   sudo   serve   port   tcp   串連   body   address   

java遠端偵錯功能可導致遠程執行任意命令,預設情況下在生產禁止使用。如有需要在beta/dev環境使用,必須監聽在127.0.0.1,避免被遠程調用。

監聽到127.0.0.1的方法
修改java 遠端偵錯參數中的地址為127.0.0.1,重啟java程式。
由於開啟java debug服務有兩種方式,啟動時的參數參考以下其中一種。

java debug啟動時開啟遠端偵錯參數
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>
注: tomcat的啟動參數在startenv.sh裡面修改。

遠端偵錯的方法
在啟用了java debug的機器上使用socat命令進行連接埠映射,使用映射的連接埠進行遠端偵錯,在調試完後需結束socat命令。
命令如下,其中listen_port是socat監聽的連接埠,dest_port是java debug監聽的連接埠, source_ip是調試的客戶機的ip。

socat命令
socat TCP4-LISTEN:<listen_port>,fork,range=<source_ip>/32 TCP4:127.0.0.1:<dest_port>
若機器上沒有socat程式,使用以下命令安裝socat

sudo yum install socat
例子
伺服器的ip地址為192.168.254.219, 原生ip地址為10.86.14.35,且伺服器的java debug服務監聽到127.0.0.1:50002連接埠。此時我想用本機串連伺服器進行遠端偵錯,需:
1、登陸伺服器使用socat進行連接埠映射,
socat TCP4-LISTEN:50001,fork,range=10.86.14.35/32 TCP4:127.0.0.1:50002
2、在idea中設定遠端偵錯的Host ip為192.168.254.219, 連接埠為50001

 

參考:

安全的Java遠程Debug

Java遠程Debug

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.