The Old Blog Archive (Traditional Chinese), 2004-2009

ssh頭腦體操(續)

前一篇〈SSH頭腦體操〉裡,我介紹了SSH的兩種用法:-L與-R 。有時候,一次地轉發,還無法讓我們抵達目的地。這個時候就得多串一次了(click to enlarge):

Mind-Bogging SSH (chained ssh -L)

為了解釋方便,我把server1畫成兩個節點。簡言之,第一行是在資料出發點的client上開一個port。資料丟到那個port後,就會透過secure tunnel發給server1。第一行指令同時也讓server1做站內轉發,把server1從secure tunnel收來的資料,轉到同一台機器的另一個port上。此時第二行就會發揮作用,把在server1指定port的資料,經secure tunnel發至server2,再由server2轉發至目的地的指定port上。

4 Responses to “ssh頭腦體操(續)”

  1. on 31 May 2006 at 01:34tsechingho

    我依你畫的圖想了一下覺得指令好像有問題,似乎在client端的應該改為 ssh -L 8888:server1:9999 user@server1 在server1 的則是 ssh -L 9999:server2:80 user@server2 這樣才能正確 map 吧!
    所以我改畫了張圖,連結如下 http://flickr.com/photos/tsechingho/156538508/

  2. on 31 May 2006 at 10:34lukhnos

    意思是一樣的。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。:)

  3. on 01 Jun 2006 at 09:48tsechingho

    原來如此, 這樣我的ssh筆記就更完整了,晚點把圖改一下.

  4. on 27 Nov 2008 at 21:05grand

    為什麼一次沒有辦法轉發?