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

2021-09-27 08:39:03 字數 1308 閱讀 3223

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

1.ssh client(在伺服器主機和內網主機都需要安裝ssh客戶端,ubuntu預設安裝)

2.ssh server(在伺服器主機和內網主機都需要安裝ssh服務端,ubuntu預設不安裝,apt-get install openssh-server)

3.一台具有公網ip的伺服器主機

4.一台處於內網下的目標主機

我們此時有一台內網主機,沒有公網ip,內網可以訪問外網,但是外網不能訪問內網

1.內網主機: ip:192.168.3.146 port:1025

2.公網伺服器:ip: port:24.68.47.2 port:22

1.ssh -p [port] [user name]@[ip address] (連線遠端伺服器上的某個埠)

2.ssh -fncr (反向**)

3.ssh -fncl (正向**)

引數解釋:

-p:指定連線埠

-f:後台執行ssh指令

-c:允許壓縮資料

-n:告訴ssh客戶端,這個連線不需要執行任何命令,僅僅做埠**

-r:將遠端主機(伺服器)的某個埠**到本地端指定機器的指定埠

-l:將本地機(客戶機)的某個埠**到遠端指定機器的指定埠

分為以下三步

1.建立ssh隧道:內網主機連線到伺服器主機

2.在公網伺服器上設定正向**

3.ssh隧道

4.1.將內網主機的某個埠**到伺服器主機的指定埠(反向**),操作在內網主機上。

工作原理:本地機器上分配了乙個 socket 偵聽 port 埠, 一旦這個埠上有了連線, 該連線就經過安全通道**出去,。

ssh命令:

ssh -fcnr [伺服器主機ip]:[伺服器主機port]:[內網主機ip]:[內網主機port] [登陸伺服器主機的使用者名稱@伺服器ip]

將內部主機的埠對映到公網伺服器主機上的埠上

4.2.將伺服器主機的某個埠**到內網主機的指定埠(正向**),操作在伺服器主機上

工作原理:遠端主機上分配了乙個 socket 偵聽 port 埠, 一旦這個埠上有了連線, 該連線就經過安全通道轉向出去, 同時本地主機和 host 的 hostport 埠建立連線. 可以在配置檔案中指定埠的**. 只有用 root 登入遠端主機才能**特權埠

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

假設有機器a 和b,a 有公網ip,b 位於nat 之後並無可用的埠 現在想由a 主動向b 發起ssh 連線。由於b 在nat 後端,無可用公網ip 埠 這樣乙個組合,所以a 無法穿透nat,這篇文章應對的就是這種情況。首先有如下約定,因為很重要所以放在前面 機器代號 機器位置 位址 賬戶 ssh ...

SSH反向隧道 內網穿透

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

兩步建立 ssh 反向隧道

因為需要在寢室訪問實驗室的內部網路,剛好自己購買了阿里雲,因此,可以遠端幹活了,mark下方法 第一步 在內網的伺服器上,使用ssh 命令建立反向隧道 ssh fnr port localhost 22 publicusername publicip f 表示後台執行 n 表示不執行任何命令 r 建...