SSH進行端口轉發

大前提,windows可以使用freesshd做ssh服務器當一級代理,但是它的端口轉發功能有bug,所以還是用linux的ssh吧。
ps:Earthworm雖然簡單好用,但是傳輸的流量是不加密的,已經碰到過好幾次反彈回來仍然被安全設備攔截的情況,所以還是老老實實用ssh代理了

ssh自動重撥

安裝sshpass,需要gcc編譯安裝。

#!/bin/bash

while [ '' == '' ]
do
    ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
    ssh_d_port=`netstat -antulp|grep '9701'|wc -l`
    #echo 'ssh_d_process_num:'$ssh_d_process_num
    if [ "$ssh_d_process_num" == "0" -o "$ssh_d_port" == "0" ]; then
    #   echo 'ssh -d terminaled'
        sshpass -p "password" ssh -fnCNT -R 0.0.0.0:9702:127.0.0.1:22 root@192.168.99.7 -p 9701 &
    #else
    #   echo 'ssh -d running'
    fi

    sleep 300
done

ssh保持在線

ssh會話會在空閑一段時間后自動僵死,但是要注意進程連接仍在。雖然客戶端也可以設置心跳檢測,但在服務端設置更方便。
修改/etc/ssh/sshd_config

ClientAliveInterval 30#意思是每個30秒發送一次心跳請求
ClientAliveCountMax 6#超過6次心跳失敗則自動終止連接

ssh

  • 需要 root 權限,不然會提示權限錯誤:Privileged ports can only be forwarded by root
  • 不能使用 VPS (sshd server) 已占用的 22 端口,用作端口轉發。選用 未使用 端口,比如 2222
    否則就杯具了:Warning: remote port forwarding failed for listen port 22

本地轉發

p參數表示ssh的端口
ssh命令
ssh -fCN -L 127.0.0.1:1234:192.168.99.125:3389 root@192.168.99.199 -p 53
plink.exe命令
plink.exe -v -C -N -L 127.0.0.1:8888:127.0.0.1:3389 test@117.28.112.73 -P 9398 -pw password
直接訪問本機開啟監聽的1234端口,其實等于通過遠程主機192.168.99.199來訪問遠程主機192.168.99.125上的3389端口

-n 將 stdio 重定向到 /dev/null,與 -f 配合使用
-T 不分配 TTY 只做代理用
-q 安靜模式,不輸出 錯誤/警告 信息
-f 后臺連接
-N 連接后不取得shell
-C 啟動壓縮,加快速度
(如不理解參數可以去掉他們看效果)
-L 1234為建立隧道后本地監聽的端口,192.168.99.125是隧道出口轉發到的目標地址(即xp靶機),3389是目標端口,root@192.168.99.199是建立隧道的另一方,即rolling版登錄的賬號和ip,-p 53是rolling版的監聽端口。

遠程轉發

ssh -fCN -R 0.0.0.0:9999:192.168.1.1:80 root@test.com

0.0.0.0表示vps上監聽所有地址。
直接訪問遠程主機上開啟監聽的9999端口就相當于通過本機來訪問192.168.1.1上的80端口。

其中有個大坑
bind_address 參數默認值為空,等價于

*:port:host:hostport

并不意味著任何機器,都可以通過 VPS 來訪問 內網 機器。建立連接后,只能在 VPS ( sshd server ) 本地 訪問 「內網」 機器。要在辦公網的筆記本上通過 VPS 映射的端口來訪問 內網 機器,需要修改vps上的/etc/ssh/sshd_config文件,啟用 VPS sshd 的 GatewayPorts 參數,set to yes or clientspecified,允許任意請求地址,通過轉發的端口訪問內網機器。

動態映射

-D socks代理,不多解釋了。
-g 監聽所有地址,允許其他主機連接。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 有待整理 SSH協議 通過公鑰加密技術實現服務器身份驗證。 安全的隧道SSH會自動加密和解密所有SSh客戶端與服務...
    極客圈閱讀 3,559評論 0 0
  • 實戰 SSH 端口轉發 通過本文的介紹,讀者可以從中了解到如何應用 SSH 端口轉發機制來解決日常工作 / 生活中...
    hopevow閱讀 1,066評論 0 9
  • ??本文將介紹兩種應用場景的SSH端口轉發,分別是SSH本地轉發以及SSH遠程轉發。 簡介 ??SSH(Secur...
    KingFighting閱讀 1,506評論 0 5
  • 第一部分 概述當你在咖啡館享受免費 WiFi 的時候,有沒有想到可能有人正在竊取你的密碼及隱私信息?當你發現實驗室...
    fastjrun閱讀 1,179評論 0 8
  • 現在什么對我最重要?現在能夠掙足夠多的錢讓生活能保持下去,不讓金錢對生活造成額外的負擔。讓自己能在曰常生活中保持最...
    梅啟林閱讀 215評論 0 0