ssh頭腦體操(續)
前一篇〈SSH頭腦體操〉裡,我介紹了SSH的兩種用法:-L與-R 。有時候,一次地轉發,還無法讓我們抵達目的地。這個時候就得多串一次了(click to enlarge):
為了解釋方便,我把server1畫成兩個節點。簡言之,第一行是在資料出發點的client上開一個port。資料丟到那個port後,就會透過secure tunnel發給server1。第一行指令同時也讓server1做站內轉發,把server1從secure tunnel收來的資料,轉到同一台機器的另一個port上。此時第二行就會發揮作用,把在server1指定port的資料,經secure tunnel發至server2,再由server2轉發至目的地的指定port上。
lukhnos :: May.28.2006 :: tekhnologia 技術或者藝術 :: 4 Comments »
4 Responses to “ssh頭腦體操(續)”
我依你畫的圖想了一下覺得指令好像有問題,似乎在client端的應該改為 ssh -L 8888:server1:9999 user@server1 在server1 的則是 ssh -L 9999:server2:80 user@server2 這樣才能正確 map 吧!
所以我改畫了張圖,連結如下 http://flickr.com/photos/tsechingho/156538508/
意思是一樣的。ssh -L 三明治參數裡的位置,是從 server 端的觀點來看的。所以 ssh -L 8888:localhost:9999 user@server1 的意思是,所有送到 client port 8888 的資料,都會經由 secure channel 送到 server1 ,再由 server1 上的 sshd 轉發到 server1 (從server1來看就是localhsot啦) 的 port 9999。
第二層,在 server1 上執行 server -L 9999:destination:80 user@server2 的意思是,所有送到 server1 port 9999 的資料,都會經 secure channel 送到 server2 上,再由 server2 上的 sshd 轉發到 destination 的 port 80。
照你的設定方式,資料最終會送到 server2 的 port 80,而不是 destination 的 port 80。:)
原來如此, 這樣我的ssh筆記就更完整了,晚點把圖改一下.
為什麼一次沒有辦法轉發?