从外网 SSH 进局域网,反向代理+正向代理解决方案
生活随笔
收集整理的這篇文章主要介紹了
从外网 SSH 进局域网,反向代理+正向代理解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
相信很多同學都會碰到這樣一個問題。在實驗室有一臺機器用于日常工作,當我回家了或者回宿舍之后因為沒法進入內網,所以訪問不到了。如果這個時候我需要 SSH 進去做一下工作,那么怎么解決這個問題呢?本文將給出一種使用 SSH 的代理功能的解決方案。
問題描述:
https://segmentfault.com/a/1190000002718360
機器狀況
| A | 192.168.0.A | usr_a | 目標服務器,在局域網中,可以訪問 A |
| B | B.B.B.B | usr_b | 代理服務器,在外網中,無法訪問 A |
| C | - | - | 可以直接訪問 B,無法直接訪問 A |
目標
從 C 機器使用 SSH 訪問 A
解決方案
在 A 機器上做到 B 機器的反向代理;在 B 機器上做正向代理本地端口轉發
環境需求
每臺機器上都需要 SSH 客戶端
A、B 兩臺機器上需要 SSH 服務器端。通常是 openssh-server。
在 Ubuntu 上安裝過程為
sudo?apt-get?install?openssl-server
實施步驟
建立 A 機器到 B 機器的反向代理【A 機器上操作】
ssh?-fCNR?<port_b1>:localhost:22?usr_b@B.B.B.B<port_b1>?為 B 機器上端口,用來與 A 機器上的22端口綁定。
建立 B 機器上的正向代理,用作本地轉發。做這一步是因為綁定后的 端口只支持本地訪問【B 機器上操作】
ssh?-fCNL?"*:<port_b2>:localhost:<port_b1>'?localhost<port_b2>?為本地轉發端口,用以和外網通信,并將數據轉發到?<port_b1>,實現可以從其他機器訪問。
其中的*表示接受來自任意機器的訪問。
現在在 C 機器上可以通過 B 機器 ssh 到 A 機器
ssh?-p?<portb2>?usra@B.B.B.B至此方案完成。
附:
SSH 參數解釋
-f?后臺運行-C?允許壓縮數據-N?不執行任何命令-R?將端口綁定到遠程服務器,反向代理-L?將端口綁定到本地客戶端,正向代理?
轉載于:https://blog.51cto.com/myloli/1749746
總結
以上是生活随笔為你收集整理的从外网 SSH 进局域网,反向代理+正向代理解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (NO.00003)iOS游戏简单的机器
- 下一篇: 4. 测试设计技术