IntelliJ IDEA远程SSH Gradle项目连接超时问题求助
解决方案
核心问题分析
IDEA远程运行Gradle项目时,需要与远程主机上的Gradle守护进程(daemon)建立控制连接,但默认Gradle会随机分配监听端口,而远程仅开放22端口,导致本地IDEA无法穿透防火墙连接到随机端口。之前配置的SOCKS5代理仅作用于Gradle自身的网络请求(如依赖下载),无法解决IDEA与远程Gradle daemon的控制连接问题。
具体解决步骤
1. 固定远程Gradle守护进程的监听端口
在远程主机的~/.gradle/gradle.properties文件中添加以下配置(文件不存在则新建):
# 指定Gradle daemon固定监听端口,选一个未被占用的端口即可 org.gradle.daemon.port=50051 # 允许daemon监听所有网卡,确保端口转发能生效 org.gradle.daemon.host=0.0.0.0
2. 建立SSH本地端口转发
在Windows的CMD或PowerShell中执行以下命令(替换your_remote_username为远程主机的实际用户名):
ssh -L 50051:localhost:50051 your_remote_username@172.31.30.248
这条命令会将本地的50051端口与远程主机的50051端口通过SSH隧道绑定,所有发往本地50051的请求都会通过22端口转发到远程的对应端口。保持该命令窗口处于运行状态,不要关闭。
3. 配置IDEA连接远程Gradle daemon
打开IDEA的Settings > Build, Execution, Deployment > Build Tools > Gradle:
- 切换到你的远程运行目标(Run Target)
- 在
Gradle daemon port选项中填入刚才设置的50051 - 保存配置并重启IDEA的远程运行会话
4. 验证运行
重新执行远程构建、测试或运行操作,此时IDEA会通过本地转发的端口连接远程Gradle daemon,无需远程主机开放额外端口。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

