使用SSH反向隧道進行內網穿透

2021-10-09 03:14:02 字數 735 閱讀 7237

假設有機器a 和b,a 有公網ip,b 位於nat 之後並無可用的埠**,現在想由a 主動向b 發起ssh 連線。由於b 在nat 後端,無可用公網ip + 埠 這樣乙個組合,所以a 無法穿透nat,這篇文章應對的就是這種情況。

首先有如下約定,因為很重要所以放在前面:

機器代號 機器位置 位址 賬戶 ssh/sshd 埠 是否需要執行sshd

a 位於公網 a.site usera 22 是

b 位於nat 之後 localhost userb 22 是

c 位於nat 之後 localhost userc 22 否

這裡預設你的系統init 程式為systemd,如果你使用其他的init 程式,如果沒有特殊理由還是換到乙個現代化的gnu/linux 系統吧……

ssh 反向隧道

這種手段實質上是由b 向a 主動地建立乙個ssh 隧道,將a 的6766 埠**到b 的22 埠上,只要這條隧道不關閉,這個**就是有效的。有了這個埠**,只需要訪問a 的6766 埠反向連線b 即可。

首先在b 上建立乙個ssh 隧道,將a 的6766 埠**到b 的22 埠上:

1b $ ssh -p 22 -qngfntr 6766:localhost:22 [email protected]

然後在a 上利用6766 埠反向ssh 到b:

1a $ ssh -p 6766 userb@localhost

要做的事情其實就是這麼簡單。

參考文件:

使用SSH建立反向隧道進行內網穿透

利用ssh進行內網穿透主要是利用了ssh的隧道 埠 功能。首先內網主機通過ssh連線和乙個具有公網ip的主機建立隧道,設定好伺服器主機埠對內網主機埠的對映,之後所有外網對公網ip的請求均通過之前內網主機和伺服器建立好的ssh隧道被 到內網主機上,然後內網主機根據請求又通過隧道將對應的資訊的返回。1....

SSH反向隧道 內網穿透

構建隧道 需要在 a 機器上將sshd服務開啟gatewayports的配置 設定 etc ssh sshd config配置檔案中的 gatewayports no為gatewayports yessed i gatewayports c gatewayports yes etc ssh sshd...

使用frp進行內網穿透

環境 公網機器 關閉防火牆 systemctl disable firewalld chkconfig iptables off解壓 tar zxvf frp 0.28.2 linux amd64.tar.gz進入目錄 cd frp 0.28.2 linux amd64移動位置 mv frps us...