# 20.5.3 远程调试通道

Java的远程调试在诊断远程应用问题时很有用，不幸的是，当应用部署在你的数据中心外时，它并不总能够启用远程调试。如果你使用基于容器的技术，比如Docker，远程调试设置起来非常麻烦。

为了突破这些限制，devtools支持基于HTTP的远程调试通道。远程客户端在8000端口提供一个本地server，这样远程debugger就可以连接了。一旦连接建立，调试信息就通过HTTP发送到远程应用。你可以使用`spring.devtools.remote.debug.local-port`属性设置不同的端口。

你需要确保远程应用启动时开启了远程调试功能，通常，这可以通过配置`JAVA_OPTS`实现，例如，对于Cloud Foundry，你可以将以下内容添加到manifest.yml：

```
---
  env:
    JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n"
```

**注** 注意你不需要传递一个`address=NNNN`的配置项到`-Xrunjdwp`，如果遗漏了，java会使用一个随机可用端口。

调试基于Internet的远程服务可能很慢，你可能需要增加IDE的超时时间。例如，在Eclipse中你可以从`Preferences…`选择`Java` -> `Debug`，改变`Debugger timeout (ms)`为更合适的值（60000在多数情况下就能解决）。
