You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对通过ngrok隧道暴露的远程JVM进行调试

问题原因&解决方案

  • 1 修正IntelliJ远程调试配置
    你当前配置的Host字段多了tcp://协议前缀,IDEA的远程调试功能只需要填写纯域名/IP,不需要带协议头,修改为:
    Debugger mode: Attach to remote JVM
    Host: 2.tcp.eu.ngrok.io
    Port: 10928
    
    这是导致握手失败的最常见原因。
  • 2 确认JDWP配置有效性
    你当前使用的-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n配置适用于Java 9及以上版本,如果你运行Java进程的设备使用的是Java 8及更低版本,将配置修改为-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n,确保JDWP服务绑定到所有网络接口,而非仅本地回环接口。
  • 3 验证隧道连通性
    先在运行IntelliJ的设备上执行命令测试ngrok隧道是否能正常连通:
    telnet 2.tcp.eu.ngrok.io 10928
    如果连接失败,按顺序排查:
    • 运行Java进程的设备上的ngrok tcp进程是否正常运行,没有被中断
    • 运行Java进程的设备的防火墙是否放行5005端口的入站请求
    • 远程设备上的Java进程是否正常启动,5005端口确实被JVM占用
  • 4 版本兼容性校验
    如果以上步骤都无误仍然握手失败,确认IntelliJ使用的JDK版本和远程设备上运行Java进程的JDK版本保持大版本一致,避免JDWP协议不兼容导致的握手中断。

补充说明:JDWP是原生TCP协议,不支持HTTP/HTTPS协议封装,你之前使用tcp类型的ngrok隧道是正确的,不需要尝试HTTP类型的隧道。

内容的提问来源于stack exchange,提问作者boris_strahilov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:15:08