ssh-正向與反向代理


  1. 常用參數
  2. 栗子
  3. 實戰

常用參數

  • -N 告訴SSH客戶端,這個連接不需要執行任何命令。僅僅做端口轉發
  • -C 表示壓縮數據傳輸
  • -f 告訴SSH客戶端在后台運行
  • -q Quiet mode. 安靜模式,忽略一切對話和錯誤提示
  • -g:允許遠程主機連接主機的轉發端口
  • -L port:host:hostport 做本地映射端口(正向隧道,監聽本地port)
    • 需要使用的本地端口號
    • 需要訪問的目標機器IP地址(IP: 234.234.234.234)
    • 需要訪問的目標機器端口(端口: 21)
  • -R。port:host:hostport 該參數的三個部分的含義分別(反向隧道,監聽遠程port)
    • 遠程機器使用的端口(2222)
    • 需要映射的內部機器的IP地址(127.0.0.1)
    • 需要映射的內部機器的端口(22)
    • 栗子 -R X:Y:Z 就是把我們內部的Y機器的Z端口映射到遠程機器的X端口上
  • -D port 指定一個本地機器 ``動態的 應用程序端口轉發

栗子

ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123
ftp localhost:2121 # 現在訪問本地2121端口,就能連接234.234.234.234的21端口了
  • 保持長時間連接

    ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"
    
  • SSH隧道建立SOCKS服務器

    ssh -N -f -D 1080 123.123.123 # 將端口綁定在127.0.0.1上
    ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 將端口綁定在0.0.0.0上
    
  • SSH 建立正向代理

    ssh -CfNg -L 6300:127.0.0.1:1521 oracle@172.16.1.164
    
  • SSH 建立反向代理

    ssh -CfNg -R 1521:127.0.0.1:6300 oracle@172.16.1.164
    

實戰

有A,B,C 3台服務器;

A,C有公網IP, B是某IDC的服務器無公網IP。

A通過B連接C的80端口(A<=>B<=>C), 那么在B上執行如下命令即可:

ssh -CfNg -L 6300:127.0.0.1:80 userc@C
ssh -CfNg -R 80:127.0.0.1:6300 usera@A


免責聲明!

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



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