iT邦幫忙

0

HTTP與Socks代理的問題

  • 分享至 

  • xImage

Putty這套軟體可以實作本機端的HTTP與Socks代理,只要找得到對應的外部伺服器,就能透過它來代送其它協定,比如telnet、或是ftp等等的。

以telnet來說,Socks的運作方式比較好理解,putty轉為socks封包送出後,遠端的socks代理伺服再轉回telnet並送到telnet伺服上,這樣的流程認知應沒問題。

Http就比較神奇了。Putty將telnet封包轉成http送出後,遠端的http代理不會再轉回來啊?為什麼同樣可以連上telnet伺服呢?還是遠端的http代理同樣是對port 23送出http封包.telnet伺服仍然能讀,只不過會讀到很多不必要的資訊?

先謝謝大家的指導。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

8
wiseguy
iT邦超人 1 級 ‧ 2013-01-11 11:39:07

你誤會了。putty 只是用 ssh tunnelling 的方式,把原來的封包《再包一層》變成 ssh 的封包,送到遠端主機,遠端主機解開 ssh 封包後,原來的封包是什麼協定就是什麼協定,根本不用《轉》,只要直接把原封包傳出去就行了。所以原本是 telnet 就是 telnet,原本是 http 就是 http,putty 不會去更動。

看更多先前的回應...收起先前的回應...
xharkie iT邦新手 5 級 ‧ 2013-01-12 12:02:33 檢舉

謝謝大師的回答!

我舉個例子。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封包,所以就比較容易理解。

slime iT邦大師 1 級 ‧ 2013-01-12 12:23:34 檢舉

你好像想得太複雜了....

簡單想成:

  1. 原則上不準把槍寄到台灣....(防火牆擋住"槍"這內容及"台灣"這目的地)
  2. 把"槍"包在鐵中, 以其他名義寄到台灣某鐵工廠....(類似把 http 包在 ssh 中)
  3. 鐵工廠把鐵跟槍分開, 把槍拿給其它人....( ssh 把 http 分出來, 把 http 送出去)

所以鐵工廠不會去把槍拆開, 也不會把鐵再鑄成槍(推測您想的比較像這樣), 只有把槍跟其他鐵分開而已.(實際上 ssh tunnel + SOCKS 只做這種事)

xharkie iT邦新手 5 級 ‧ 2013-01-12 14:30:07 檢舉

所以照理說,http、ftp、telnet proxy,可以轉送任何類型的封包,是這樣囉?

反正他們都只是再包一層協定在外面而已?

slime iT邦大師 1 級 ‧ 2013-01-12 19:21:40 檢舉

大原則是這樣沒錯....

wiseguy iT邦超人 1 級 ‧ 2013-01-12 22:06:31 檢舉

xharkie提到:
Putty先指定一個Http proxy,然後透過這個proxy使用telnet協定連上遠端的telnet主機,或者用SSH透過proxy連上遠端支援SSH的telnet主機

你講的這個情境,我不知道 putty 可以這麼用耶
你是怎麼知道 putty 透過 http proxy 連遠端 telnet 或用SSH透過proxy連上遠端支援SSH的telnet主機 (《支援SSH的telnet主機》有這種主機嗎?) 的?
你是否能說明一下你做以上動作,是怎麼操作 putty 的?說明一下操作步驟大家比較清楚你執行了什麼功能。

2
bizpro
iT邦大師 1 級 ‧ 2013-01-11 16:41:28

您要問的是透過遠端的代理伺服器上網嗎? 例如
you<-->socks5 8080<-->ssh tunnel<-->Other<-->proxy 3128<-->Internet,
請google: putty tunnel proxy

我要發表回答

立即登入回答