IntelliJ 2018.1无法远程调试Tomcat问题求助
解决IntelliJ 2018.1远程调试Unix Tomcat失败的问题
我之前也踩过远程调试Tomcat的坑,结合实际经验给你几个排查和解决的方向:
1. 核对IntelliJ远程调试配置细节
- 打开
Run/Debug Configurations,选择Remote类型的配置 - 确保Host填写的是Unix服务器的公网/内网IP或hostname,绝对不能填
localhost(除非你是本地调试,但这里是远程实例) - Port必须严格设置为
62666,和你Tomcat JAVA_OPTS里的address参数完全匹配 - 确认Debugger mode选择的是
Attach to remote JVM(这是IntelliJ的默认选项,但老版本偶尔会出问题,手动核对下) - 因为你Tomcat用了
suspend=n,所以不需要等Tomcat启动完成再连接调试器,直接启动IntelliJ的调试会话即可
2. 验证服务器端口的连通性
远程调试失败最常见的原因是端口不通:
- 在本地终端执行
telnet <服务器IP> 62666或者nc -zv <服务器IP> 62666,测试能不能连上目标端口 - 如果连接失败,检查Unix服务器的防火墙规则:比如
iptables是否开放了62666端口,或者云服务器的安全组是否添加了该端口的入站许可 - 可以尝试修改Tomcat的JDWP参数为
-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:62666,suspend=n,server=y,显式绑定所有网卡,避免只绑定localhost导致远程无法访问
3. 确认Tomcat的JDWP参数真正生效
有时候配置的JAVA_OPTS会被其他脚本覆盖:
- 在Unix服务器上执行
ps aux | grep tomcat,查看Tomcat的完整启动命令,确认-agentlib:jdwp=...参数确实存在于进程启动参数中 - 检查Tomcat的
bin/setenv.sh(如果存在的话),看看里面有没有覆盖JAVA_OPTS的配置,确保调试参数没有被冲掉
4. 处理IntelliJ的缓存和版本兼容问题
2018.1版本相对较老,可能存在缓存或兼容问题:
- 执行
File -> Invalidate Caches / Restart,清理IntelliJ的缓存后重启,再重新配置远程调试 - 确认项目的JDK版本和Tomcat使用的JDK版本完全一致,比如Tomcat用JDK8,IntelliJ中项目的SDK也要设置为JDK8,版本不匹配会导致调试连接失败
5. 查看日志定位问题
- 查看Tomcat的
catalina.out日志,搜索JDWP相关的日志,看看有没有初始化失败的错误信息 - 如果IntelliJ连接时报错,把具体错误信息贴出来,能更快定位问题
内容的提问来源于stack exchange,提问作者Graham
相关产品推荐
相关产品推荐

