[Linux/Mac] 利用 ssh tunnel 經由跳板連到別的網段的電腦

[Linux/Mac] 利用 ssh tunnel 經由跳板連到別的網段的電腦

公司內部網路有切分不同的網段,不同網段之間不一定能互通,

舉例來說:

  – Wifi LAN 只能連到 Office LAN

  – Office LAN 可以連到 Lab LAN

 

那這樣假設我有一台連上 Wifi LAN 的電腦,要如何與 Lab LAN 的電腦連線呢?

搜尋了一下,可以利用 ssh tunnel 作到這件事~

 

參考資料:

上班族ssh tunnel求生手冊

反向建立 SSH Tunnel、免 VPN 連回公司

 

下面就來說明一下步驟吧~

 

1. 建立與跳板之間的 ssh tunnel

假設我現在是在 Wifi LAN 上面,跳板電腦是位於 Office LAN 的 10.1.2.3,

而我想要透過跳板,用 ssh 連到我本來連不到的 Lab LAN 的 172.22.4.5 的話,

可以用下列指令建立 ssh tunnel:

ssh -NfL *:50022:172.22.4.5:22 10.1.2.3

 

上面這個指令裡用到的 -NfL 參數的意思是:

-N: 不在遠端電腦上執行指令,通常是用在 port forwarding 之用。

-f: 讓這個 ssh 程序進到背景中執行。

-L: 建立一個 port forwarding,將連到 local port 的資料導到遠端的 port。

 

因此,上述指令的意思就是從本機建立一個與跳板 10.1.2.3 間的 ssh tunnel,

之後只要連到本機的 port 50022,

就會自動由跳板 10.1.2.3 將封包轉送到 172.22.4.5 的 port 22~

 

2. 藉由 ssh tunnel 連線到遠端電腦

這邊很簡單,只要 ssh 本機的 port 50022 就行了,

像下面的指令達到的效果,就跟用 root 帳號以 ssh 的方式直接連線至 172.22.4.5 一樣:

ssh root@localhost -p 50022

 

如果是需要用 key 才能登入 172.22.4.5 的話,就一樣加上 -i 的參數:

ssh -i mykey root@localhost -p 50022

 

學會了 ssh tunnel 之後,

這種不同網段間本來不能互通的問題就有可能透過跳板解決, 

真的是方便很多喔~~^^

 

 

(本頁面已被瀏覽過 7,581 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料