首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse 遠程調試「Failed to connect to remote VM」排查:代理設置導致連接失敗

     編輯:Java 相關知識

Eclipse 遠程調試時遇到 「Failed to connect to remote VM」**,檢查目標 JVM 參數、防火牆、端口均正常,最終發現是 **Eclipse 內部代理設置** 導致調試連接被錯誤代理。本文記錄排查過程、根因分析與解決方案,避免同類問題重複踩坑。

現象描述

  • 目標應用啟動參數包含:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
  • 端口 8000 在目標機器 netstat -an | grep 8000 顯示 LISTEN
  • 本地 telnet target-host 8000 連通正常
  • Eclipse Debug Configurations → Remote Java Application 設置正確(Host、Port)
  • 點擊 Debug 後報錯:Failed to connect to remote VM. Connection refused / timeout

遠程調試報錯截圖

排查過程

  1. 確認目標 JVM 參數無誤,端口監聽正常
  2. 確認網絡連通性:telnet、nc、curl 均通
  3. 嘗試 IntelliJ IDEA 連接同一目標 → **成功**
  4. 推測 Eclipse 客戶端配置問題
  5. 檢查 Eclipse Window → Preferences → General → Network Connections**
  6. 發現 Active Provider: Manual** 且設置了 HTTP/HTTPS/SOCKS 代理
  7. 將 Active Provider 改為 **Native** 或 **Direct** → 遠程調試即刻成功

根因分析

  • Eclipse 內部網絡層(基於 Apache HttpClient / Java Net API)遵循 Preferences 中的代理設置
  • 遠程調試連接(JDWP 協議,TCP 直連)被錯誤路由到代理服務器
  • 代理服務器不支持 JDWP 協議轉發,或目標地址在代理白名單外,導致連接失敗
  • 關鍵認知:Eclipse 代理設置**不僅影響插件安裝/更新、Maven 索引下載**,還影響** Eclipse 發起的所有網絡連接**,包括遠程調試、JMX 連接、服務器適配器部署等

解決方案

方案一:全局關閉代理(最簡單)

代理設置改為 Direct

  1. Window → Preferences → General → Network Connections
  2. Active Provider 選擇 **Direct** 或 **Native**(Native 使用系統代理,Direct 直連)
  3. Apply and Close

方案二:添加繞過規則(保留代理用於插件更新)

  1. Active Provider 保持 Manual
  2. 在 Proxy bypass 列表添加:
localhost
127.0.0.1
::1
*.your-internal-domain.com
192.168.*
10.*
172.16.*-172.31.*
  • 覆蓋內網地址段,遠程調試目標通常為內網 IP
  • 插件市場、Maven Central 等外網請求仍走代理

方案三:運行配置級別覆蓋(精確控制)

  1. Debug Configurations → 你的 Remote Java Application → Common 標籤
  2. 取消勾選 Use network proxy settings(若可見)或在 Environment 添加:
JAVA_TOOL_OPTIONS=-Djava.net.useSystemProxies=false -Dhttp.nonProxyHosts="localhost|127.0.0.1|192.168.*|10.*|172.16.*-172.31.*"

最佳實踐建議

場景推薦設置
純內網開發、無外網訪問需求Active Provider = Direct
需訪問外網插件市場、Maven CentralManual + 完整 Proxy bypass 內網段
企業統一代理、強制所有流量走代理Native(使用系統代理)+ 確保系統代理設置正確
頻繁切換網絡環境(辦公室/家/咖啡廳)使用 Proxy SwitchyOmega 等瀏覽器插件管理,Eclipse 保持 Direct

延伸:其他受代理影響的 Eclipse 功能

  • Maven 依賴下載、索引更新
  • Eclipse Marketplace / Install New Software
  • Server Adapters (Tomcat, WildFly 等) 下載、部署
  • JMX / RMI 連接監控遠程 JVM
  • Docker / Kubernetes 插件連接守護進程
  • Git 推拉(若使用 EGit 內部 HTTP 客戶端)

下次遇到「明明網絡通、配置對、就是連不上」的 Eclipse 網絡問題,**第一時間檢查 Network Connections 代理設置**,能節省數小時排查時間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved