SSH使用ProxyCommand通過代理服務器遠程連接其他服務器


當前環境拓撲圖:

  用戶管理海外服務器,通過公網SSH遠程時,由於網絡質量原因公網丟包嚴重,這就導致管理員在對海外雲主機進行管理時體驗較差,表現形式可能是由於公網丟包嚴重執行命令卡頓,或者SSH進程異常中斷等。
  針對上述需求,給出以下方案來優化此問題。

  • 新增一台代理服務器,此服務器到用戶的網絡質量和到海外服務器的網絡質量良好,可以充當中間橋梁,途中我們以香港服務器為例。
  • 管理員通過使用代理服務器充當跳板機來對海外服務器進行管理。

操作步驟:

代理服務器配置

  首先需要在代理服務器上啟動一個socks代理服務,並將此服務的端口授權給管理員可以進行訪問。
  關於socks代理有各種服務可以實現,在這里我們為了操作最輕量級就直接使用系統自帶的SSH來實現此功能。
ssh -p5258 -fqND 0.0.0.0:6565 root@127.0.0.1
  使用以上命令可以建立一個SSH隧道代理,以下是上述參數的含義:

  • -p5258:由於我們要連接的隧道服務器的ssh端口是5258,所以在此需要使用-p進行指定;
  • -fqND:f表示后台認證用戶名/密碼無須登錄到遠程主機,通常和N(不執行腳本或命令)連用,q表示禁用告警和診斷消息,D表示指定本地機器進行動態端口轉發;
  • 0.0.0.0:6565:表示監聽在此台機器上所有IP的6565端口;
  • root@127.0.0.1:表示在本地上啟用代理服務,也可以換成其他服務器,特定場景特定需求。

管理用戶連接

ssh -o ProxyCommand="nc -X 5 -x 114.114.114.114:6565 %h %p" root@8.8.8.8
  設置完代理服務器后,在ssh時需要指定代理服務器的IP及端口信息,最后指定要連接到的服務器即可,登錄成功后服務器會給出登錄的IP地址,或者使用who命令進行查看,只要登錄的IP地址是代理服務器的地址表示所有配置正常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM