ssh-tunnel這項技術在公司已經很常用了,不過我卻是到了最近才搞懂,在公司內我們要登入到IDC機房必須先經過某台跳板機,使用者首先完成雙認證後登入跳板機後,再連到某一台主機並開啟視窗介面,最後進到其他系統,例如防火牆、VMWare或是storage等,而這次架設ssh server雙認證之後,我也繼續測試看看如何設定ssh-tunnel,然後登入另一台遠端電腦,甚至透過tunnel在本機上開啟一些服務。
有關ssh-tunnel的一些原理,網路上已經有非常完整的說明文件,我這邊只需要建立最單純的連線和跳板模式,仿照公司內部的連線方式即可,簡單來說,ssh-tunnel很像是VPN的tunnel,也也都是隧道協議,透過穿過防火牆的方式,將各種連線協議封裝載一起、在不相容的環境下傳輸的方式,而我要能夠透過ssh到跳板機、把本機的流量經ssh-tunnel,開啟另一台電腦的遠端桌面或是網頁,在這邊就測試RDP和http的效果如何,其實網路上還有很多說明,包括ssh-tunnel如何反向讓對方連入自己電腦,還有如何開啟資料庫等等,但這些需求我還沒有需求,也許之後可以再深入研究。
一.SSH-TUNNEL連線設定
說明一下,網上這張圖就很清晰地說明我要的設定,用戶端要用ssh-tunnel穿過防火牆到ssh server、再到遠端的伺服器上。
.png)
環境設定:
1.ssh server: 10.113.22.80
2.遠端windows主機:10.113.22.78
3.遠端的網頁伺服器:10.113.11.80
二.開始各種連線方式
Windows的使用者可以用很方便的Putty,MacOS和Linux的使用者則都用指令,我因為用的是MacBook,也比較習慣用指令,所以這邊先記錄輸入指令的連線方式
1.從client端ssh開啟Windwos遠端桌面
ssh -f -L 15099:10.113.22.78:3389 user@10.113.22.80 -N
開啟遠端,連線至127.0.0.1:15099,用本地方式連線,port可以自行定義
![]() |
連線的port號可以自己選定 |
-f和-N這兩個參數也是自行選用的,通常是讓連線背景處理用的。
ssh -f -L 9090:10.113.11.80:80 user@10.113.22.80 -N
其實ssh-tunnel還有非常多的可以用的技術,甚至還能讓外部網路透過ssh-tunnel進來本地,如果以後機會再繼續研究,這邊只記錄常用的幾個設定。
沒有留言:
張貼留言