使用ssh Reverse Tunnel 突破防火牆或NAT限制
- 架構圖
- 背景說明
- 實作說明
- 參考資料
架構圖
試想一個情況,公司區網有一部A主機可以對外連線上網都沒問題,可是這部A主機是在防火牆或NAT後端裡面,外部B主機是無法連到這部A主機。若不想在防火牆設定由外部 mapping A主機的話,就可以利用 SSH Reverse Tunnel。
背景說明
- 區域網的 A主機(windows ) 192.168.88.8 , 有開啟RDP(有開啟遠端桌面服務,僅在區域網路使用) - 外部B主機(Linux,在Google GCP 租用的),35.221.139.139 (Public IP, 配合演示使用的),有開啟SSHD服務 - 本篇主要目的,要從 Google GCP 租用的外部B主機連到區域網路A主機RDP服務實作說明
如上圖顯示紫色那一段為第1步,綠色為第2步。第1步: 先在A主機建立與B主機的Reverse Tunnel連線
A主機是Windows,用putty ssh 外部B主機
填上外部B主機ip位址
填上Login帳號
此步驟非必要的,此篇登入外部B主機是使用憑證方式
最重要!!,設定reverse Tunnel
- Source port:3389 表示給外部連線用的
- Destination : 127.0.0.1:3389 表示連線A主機內部服務
完成連線
- 表示已連線登入到外部B主機
- 紅色圈起來表示 上圖Source port部份
第2步: 從B主機連線到內網A主機
使用freerdp這個套件連線 內網A主機rdp服務
rdp Login
用RDP 進入內網A主機