小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

幾種建立http-tunnel的方法|http,tunnel-中國源碼網(wǎng)

 ShangShujie 2007-08-12

作者:BuilderChen      來源:     發(fā)表時間:2006-07-07     瀏覽次數(shù): 20511      字號:    

基本概念不多解釋了,直入主題。GNU HTTP Tunnel (http://www./software/httptunnel.html)是一個開源的http-tunnel項目,包括了tunnel server(hts命令)和tunnel client(htc命令),有(x)nix和windows版本。我們就用它來建立自己的tunnel。
1。靜態(tài)tunnel。
        http-tunnel是一個完全透明的通道,直接將你的連接forward給目標服務端口,因此當你連接tunnel的本地偵聽端口時,就相當于直接連接到目標服務端口。例如你要建立一條可以訪問外部POP3服務器的隧道,可以建立如下連接:

                    htc  ------------> http proxy ------------------------> hts ------------------------------> POP3 serve
        (localhost:8888)             (proxyhost:3128)       (tunnelserver:80)                           (pop3server:110)
在你自己的機器上運行htc,外部充當tunnel server的機器上的80端口運行hts,htc將數(shù)據(jù)打包成http請求,通過proxy連接到hts,hts解包后將連接forward給POP3服務器。命令如下:
      在tunnel server機器上:
            hts --forward-port pop3server:110 80       
            (將pop3server替換成實際的IP)
      在本地機器上:
            htc --forward-port 8888 --proxy proxyhost:3128 tunnelserver:80 
            (將proxyhost和tunnelserver替換成實際的IP)

      通過這樣的配置,你可以用Outlook或Foxmail連接本機的8888端口,就相當于直接連接到POP3服務器了。

2。動態(tài)的tunnel。
        上面建立了一條可以訪問POP3服務的隧道,但缺點是只能訪問某一個指定的POP3服務器,要訪問其他的服務器還得按同樣的方法再建立一條隧道,很不方 便。既然hts可以將連接forward給POP3服務器,那讓它forward給一個SOCKS5服務,不是就可以實現(xiàn)動態(tài)的tunnel,可以連接任 意服務了嗎?yeah!沒錯!我們建立這樣的連接:

                    htc  ------------> http proxy ------------------------> hts ------------------------------> SOCKS5 serve
        (localhost:8888)             (proxyhost:3128)       (tunnelserver:80)                           (socks5server:1080)

命令就不說了,照第一點改一下就行。這樣就相當于在localhost:8888運行了一個SOCKS5服務,設置一下你的網(wǎng)絡程序(Outlook,NetAnt,FlashGet,QQ......),讓他們通過SOCK5訪問網(wǎng)絡,就OK了。

3。利用http proxy的CONNECT支持。
        大多數(shù)http proxy支持CONNECT命令,但一般只支持CONNECT到外部服務器的443(https)端口。這是為了允許訪問外部的https服務。由于 porxy對于CONNECT的連接是直接轉發(fā),不做任何分析處理或緩存,所以利用CONNECT可以獲得比較快的速度。
        由于hts和htc不支持CONNECT連接,我們可以使用另一個專門支持CONNECT的程序DesProxy  http://desproxy.
來建立一個tunnel。由于使用CONNECT建立了直接的TCP連接,不需要將數(shù)據(jù)按http格式打包和解包,所以連tunnel server也不需要了,只需要在你原來運行hts機器上運行一個SOCKS5就行了,連接如下:

              desproxy  -------------> http proxy ----------------------> SOCKS5 server
         (localhost:8888)           (proxyhost:3128)                    (tunnelserver:443)

        desproxy命令的用法:
             desproxy remote_host remote_port proxy_host proxy_port local_port
       在這里remot_host,remote_port就是tunnelserver:443,proxy_host,proxy_port是porxyhost:3128,local_port就是8888。

        注意必須把SOCKS5運行在443端口,如果運行在其他端口的話,CONNECT請求會被http proxy拒絕。同樣,我們在localhost:8888得到了一個可以訪問外部的SOCK5服務。

4。最簡單,最安全而且快速的方式:利用SSH + CONNECT。
       實際上SSH提供了SOCKS5的功能,利用ssh客戶端或PuTTY可以在本地建立一個SOCKS5服務,而且PuTTY也直接支持http proxy,最大的好處是ssh的數(shù)據(jù)連接是加密的,保證了數(shù)據(jù)的安全。使用ssh的連接如下:
         PuTTY(或plink) ------------> http  proxy  ---------------------> ssh server
      (localhost:8888)                 (proxyhost:3128)                     (tunnelserver:443->22)
     首先我們要讓ssh server在443端口偵聽,ssh默認端口是22,我們可以修改ssh的配置,或用iptables將443端口重定向到22端口,服務端的配置就 OK了。然后在PuTTY建立一個new session,填上ssh服務器的ip和port;在"Connection->Proxy"頁,填上http proxy的ip和port;在"SSH -> Tunnels"頁,"Source port"填本地的端口,在這里我們用8888",Destination"選"Dynamic",按"Add"將這個forward port加上,就OK了。配置完成后,用PuTTY登陸上ssh,用netstat -an可以看到PuTTY已經(jīng)在localhost:8888偵聽了,這是一個SOCKS5服務,下面改怎么用,就不用我羅嗦了吧:-)。另外在 "SSH"頁,可以根據(jù)要求選擇"Protocol options"。保存session后,也可以用命令行的plink命令來利用這個session:
       plink -load session_name           (session_name就是session保存的名稱)
登陸后效果也一樣。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多