Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在2台机器上调试_Java_Debugging_Remote Desktop - Fatal编程技术网

Java在2台机器上调试

Java在2台机器上调试,java,debugging,remote-desktop,Java,Debugging,Remote Desktop,我在Linux环境中工作,我的java进程在机器C上运行。 为了从我的机器A连接到机器C,出于安全原因,我需要通过B连接,并且没有直接连接到机器C的选项 有没有办法调试运行在C机器上的java进程 提前感谢您可以通过机器B设置隧道。您可以通过从机器a发出以下命令来使用ssh隧道: ssh root@machineB -L 5005:machineC:5005 您需要将IDE配置为远程调试,指向machineA端口5005,并将machineC上的远程JVM配置为远程调试端口5005,如下所示:

我在Linux环境中工作,我的java进程在机器C上运行。 为了从我的机器A连接到机器C,出于安全原因,我需要通过B连接,并且没有直接连接到机器C的选项

有没有办法调试运行在C机器上的java进程


提前感谢

您可以通过机器B设置隧道。您可以通过从机器a发出以下命令来使用ssh隧道:

ssh root@machineB -L 5005:machineC:5005
您需要将IDE配置为远程调试,指向machineA端口5005,并将machineC上的远程JVM配置为远程调试端口5005,如下所示:

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

假设您的IDE与ssh客户端运行在同一台机器上,即machineA,您可以将IDE指向localhost:5005,ssh命令将尝试通过隧道将您与localhost:5005的所有连接连接连接到machineC:5005。

您需要在机器B上设置端口转发。连接到B,然后从那里,连接到C。谢谢你的回答。我需要从机器B设置隧道吗?我怎么做?谢谢,我需要在下面做:(/etc/ssh/sshd_config或/etc/openssh/sshd_config)ssh命令创建隧道,但我需要编辑答案,因为它不正确地指示IDE调试会话的位置。
-L
选项在本地侦听,也就是说,在machineA上,而不是在machineB上。我很抱歉。