ssh的tunnel隧道打洞

2021-09-08 20:12:56 字數 1448 閱讀 5468

分正向和反向。

假設,本地機器可以ssh連上遠端機器。本地機器在下面叫做sshclient, 遠端機器叫做sshserver.

一、 正向**(本地**)

在sshclient機上執行:

ssh -nfl1234:localhost:

12300

sshserver -p22

注意:1. 藍色部分就是乙個ssh語句。綠色是本地。紅色是遠端。

2. 這裡面的"localhost"指的是sshserver機上的localhost。而綠色1234才是本地。

3. 這條命令的作用是:在本機(sshclient機)上開啟乙個埠1234,這個1234能把接收的資料**到sshserver機上的12300埠.

4. 注意sshclient機上的1234在sshclient的localhost上。如果希望sshclient的同內網其他機器(能夠直接訪問sshclient的機器)也能訪問這個1234,怎開辦呢?加-g引數:

ssh -g -nfl 1234:localhost:12300 sshserver -p22

(加-g引數前後,可以看看lsof -i :1234的區別: listen從localhost變為*了~)

也可以這樣:

ssh -nfl 0.0.0.0:1234:localhost:12300 sshserver -p22

5. 如果想**的是sshserver機器上可以訪問的其他服務,比如www.baidu.com:80,那就把上面命令裡的紅色換成www.baidu.com:80即可。然後瀏覽器開啟localhost:1234,卻發現然並卵——"empty reply from server"。。。其實已經**成功了,但是對於http應該這樣: curl-h"host:www.baidu.com" -x get http://localhost:1234

二、反向**(遠端**)

在sshclient機上執行:

ssh -nfr

2222:localhost:22 

sshserver -p22

注意:1. 藍色部分就是乙個ssh語句。綠色是本地。紅色是遠端。

2. 這裡面的"localhost"指的就是本機(sshclient機)上的localhost。而紅色是遠端機上開了個『洞』。這時上sshserver上lsof -i :2222就會發現已經開啟了埠監聽。

3. 這條命令的作用是:在遠端機器sshserver上開了乙個埠2222, 這個2222會把接收到的資料**到sshclient上的22埠。

(22是ssh,那麼登上sshserver用ssh連sshclient試試: ssh user@sshclient -p2222  這裡假設sshclient機上面也安裝了ssh服務)

關於ssh打洞

已經是第二次遇到這個問題了,自己第一次解決的時候完全是靠leader指導但是不懂原理直接複製貼上指令來著.所以必需專門寫個筆記記錄一下到底怎麼用的 環境是,本地主機,workspace使用雲主機,其中本地主機可以ssh鏈結到workspace上,可以scp傳輸檔案,但是workspace不能ssh回...

ssh的tunnel設定 autossh設定

tunnel設定 一 說明 用於通過ssh 資料 二 設定 編輯ssh server的 2fetc ssh sshd config 新增以下 反向遂道 gatewayports yes 正向遂道,注 該設翮會斷開ssh的22斷開 allowtcpforwarding true 三 重啟ssh sud...

ssh隧道的妙用

場景說明 a主機和b主機在同乙個園區網,a主機可以出公網,b主機不可以出公網。滲透工程師已經拿下a主機控制權。一 如何在外網訪問到b主機 方案 ssh本地埠對映 背景 當我們拿下a主機之後想和b主機通訊,可以選擇直接在a主機上進行操作,但這樣會留下相關日誌,增加了被發現的風險。此時可以通過ssh隧道...