【问题标题】:How do I disable remote debugging如何禁用远程调试
【发布时间】:2019-05-08 14:48:24
【问题描述】:

目前我使用以下命令行参数启动 Java 虚拟机

-Xint -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n

这允许我将调试器附加到该 JVM,同时 JVM 和调试器在同一台机器上。但是,它也允许远程调试该会话。我的系统管理员向我指出这可能不安全并且不希望我这样做。

但是我需要更改哪些命令行参数,以便我可以将本地机器上的调试器附加到该 JVM,而不是远程的?

我正在使用 Java 8,但如果需要的话,我很乐意迁移到 Java 9。

【问题讨论】:

  • 如果您在 Windows 上,您还可以使用 dt_shmem 而不是 dt_socket 通过共享内存进行调试(仅当 JVM 和调试器在同一台机器上时才有效)IIRC,但是我自己从来没有用过,所以......
  • 我相信 Java 9 的默认行为是将连接限制在“localhost”接口,因此您只能从同一个框进行连接。如果要在所有接口上打开该端口,则需要明确通知它。所以在 Java 9 中,默认行为就是你想要的。
  • 我不得不承认,我不明白你的昵称的双关语。是不是像p45……美国第45任总统?因此,您认为自己“低”?如果是这样,请不要这样做。你很有礼貌,当你不知道的时候你会承认。因此,您比人类的悲伤借口要好得多。

标签: java java-8 remote-debugging


【解决方案1】:

只需在端口前写下您的本地地址,如下所示:

-Xint -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=127.0.0.1:4000,suspend=n

作为从每个地址访问的通配符,您还可以使用:

-Xint -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=0.0.0.0:4000,suspend=n

【讨论】:

  • 所以总是127.0.0.1?为了恢复当前行为,我应该使用0.0.0.0?
  • 直接回答您的问题:地址 127.0.0.1 始终“指向”您本地的机器。要恢复当前行为,您可以使用 0.0.0.0,或者像以前一样使用端口。如需进一步阅读:en.wikipedia.org/wiki/Localhost
  • @GhostCat:我名副其实吗?
猜你喜欢
  • 2017-04-04
  • 2015-09-11
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2010-11-28
相关资源
最近更新 更多