首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Openfire 伺服器運行數天後 Web 管理介面無法訪問:文件傳輸代理連接錯誤

     編輯:程式設計綜合問答

Openfire 運行數天後,Web 管理介面 (9090/9091) 無法打開,日誌顯示:

Error processing file transfer proxy connection
java.io.IOException: Only SOCKS5 supported
at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.processConnection(ProxyConnectionManager.java:158)

錯誤分析

  • 模組:ProxyConnectionManager 處理文件傳輸代理 (SOCKS5 Bytestreams)。
  • 原因:收到非 SOCKS5 協議的連接請求 (可能是 HTTP 掃描、漏洞掃描、或客戶端錯誤連接),導致執行緒拋出異常,若未正確捕獲可能阻塞執行緒池。
  • 影響:代理執行緒耗盡,間接導致管理介面響應緩慢或無響應。

排查步驟

  1. 檢查原始碼:查看 ProxyConnectionManager.java:158 附近,確認 try-catch 是否覆蓋 processConnection 全邏輯。
  2. 網絡監控:抓取 7777 端口 (預設文件傳輸代理端口) 流量,分析異常連接來源 IP。
  3. 防火牆限制:僅允許信任 IP 訪問 7777、9090、9091 端口。
  4. 升級版本:Openfire 4.6+ 修復多個代理執行緒洩漏問題。

臨時緩解

# openfire.xml 中禁用文件傳輸代理 (若不需該功能)
false
7777

重啟 Openfire 生效。

根治建議

  • 升級至最新穩定版 (4.8.1+)。
  • 在 ProxyConnectionManager.processConnection 入口添加完整異常捕獲與日誌記錄,避免單一錯誤連接拖垮整個代理服務。
  • 配置 xmpp.proxy.externalip 正確公網 IP,減少協議協商失敗。

核心問題在於文件傳輸代理對非標準連接的容錯不足,升級與防火牆雙管齊下可徹底解決。

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