Putty這套軟體可以實作本機端的HTTP與Socks代理,只要找得到對應的外部伺服器,就能透過它來代送其它協定,比如telnet、或是ftp等等的。
以telnet來說,Socks的運作方式比較好理解,putty轉為socks封包送出後,遠端的socks代理伺服再轉回telnet並送到telnet伺服上,這樣的流程認知應沒問題。
Http就比較神奇了。Putty將telnet封包轉成http送出後,遠端的http代理不會再轉回來啊?為什麼同樣可以連上telnet伺服呢?還是遠端的http代理同樣是對port 23送出http封包.telnet伺服仍然能讀,只不過會讀到很多不必要的資訊?
先謝謝大家的指導。
你誤會了。putty 只是用 ssh tunnelling 的方式,把原來的封包《再包一層》變成 ssh 的封包,送到遠端主機,遠端主機解開 ssh 封包後,原來的封包是什麼協定就是什麼協定,根本不用《轉》,只要直接把原封包傳出去就行了。所以原本是 telnet 就是 telnet,原本是 http 就是 http,putty 不會去更動。
謝謝大師的回答!
我舉個例子。Putty先指定一個Http proxy,然後透過這個proxy使用telnet協定連上遠端的telnet主機,或者用SSH透過proxy連上遠端支援SSH的telnet主機,anyway,這樣會產生一些問題:
一、Http proxy又不認識telnet協定,所以putty要將其包成http封包吧!這樣才能透過http proxy中繼。只是,http proxy傳出的還是http封包啊!難道是http proxy解開外層的http封包後,就不會管裡面是什麼,而繼續送到下個目的地?應該不是吧!因為http proxy解開原本的http封包後,會再包上一層自己的http封包才對啊!
二、既然http proxy送出的是http封包,遠端的telnet主機又怎看得懂呢?
三、socks則是不管協定,通通包成對話層的資料送出。比如
telnet->Socks local server->Socks remote server->telnet
Socks最後送出的是telnet封包,所以就比較容易理解。
你好像想得太複雜了....
簡單想成:
所以鐵工廠不會去把槍拆開, 也不會把鐵再鑄成槍(推測您想的比較像這樣), 只有把槍跟其他鐵分開而已.(實際上 ssh tunnel + SOCKS 只做這種事)
所以照理說,http、ftp、telnet proxy,可以轉送任何類型的封包,是這樣囉?
反正他們都只是再包一層協定在外面而已?
大原則是這樣沒錯....
xharkie提到:
Putty先指定一個Http proxy,然後透過這個proxy使用telnet協定連上遠端的telnet主機,或者用SSH透過proxy連上遠端支援SSH的telnet主機
你講的這個情境,我不知道 putty 可以這麼用耶
你是怎麼知道 putty 透過 http proxy 連遠端 telnet 或用SSH透過proxy連上遠端支援SSH的telnet主機 (《支援SSH的telnet主機》有這種主機嗎?) 的?
你是否能說明一下你做以上動作,是怎麼操作 putty 的?說明一下操作步驟大家比較清楚你執行了什麼功能。
您要問的是透過遠端的代理伺服器上網嗎? 例如
you<-->socks5 8080<-->ssh tunnel<-->Other<-->proxy 3128<-->Internet,
請google: putty tunnel proxy