2017-09-05 1 views
0

のトンネルを作成するためにどのように私はこの質問質問:Wrap packets in connect requests until reach the last proxyPythonはプロキシ

をそして私は私が持っているプロキシのチェーンを作成することを学んだ:

  • 接続の作成ソケットを

    • をプロキシへのソケット
    • プロキシBへ介してトンネルを作成 - HTTPまたはSOCKS プロトコルと同様の
    • プロキシCシミに[A、B]を介してトンネルを作成しますLAR
    • あなたの最後のプロキシが
      最終目標に構築されたトンネルに指示されるまで、私は何を私だT
    • ...

    をD

  • に[A、B、C]を介したトンネルを作成私はちょうどプロキシA.へのHTTPリクエストにヘッダを「CONNECT」を追加する必要があると思う原因、第二の点までしなければならない。しかし、私の質問は、この例では、httpリクエストに 、次のとおりです。

    CONNECT ipproxy:80 HTTP/1.1 
    Host: ?:80 
    

    でホストヘッダー私は再びプロを置く必要がありますxy ipまたは何か他の?プロキシBのIPや最終的なサイトドメインのように?

    また、私は3番目のポイントから次のポイントへ進む方法を理解していませんでした...プロキシAにトンネルを作成してからプロキシBに最後のサイトに行くプロキシCへのトンネル..

    私はどのようにPythonでそれを行うことができますか?またはいくつかの文書ですか?

  • +0

    いくつかのインスピレーションhttps://superuser.com/questions/96489/an-ssh-tunnel-via-multiple-hops –

    答えて

    1

    CONNECTのホストヘッダーはありません。私。あなただけの使用HTTPプロキシBへのトンネルを作成するために、HTTPプロキシAを要求する:このトンネル内のプロキシAを介してプロキシBに

    >>> CONNECT B_host:B_port HTTP/1.0 
    >>> 
    <<< 200 connections established 
    <<< 
    

    そして、あなたがこのトンネルを持っていることは、あなたはその後、Tをターゲットに別のトンネルを作成することができますすなわち、同じソケットの送信に、次の受信:いないすべてのプロキシを使用すると、任意のホストとポートに接続するために、彼らはまた、トンネル内のトンネルのような任意のプロトコルが、のような、選択されたプロトコルだけを許可しない可能性があります許可されていることを

    >>> CONNECT T_host:T_port HTTP/1.0 
    >>> 
    <<< 200 connections established 
    <<< 
    

    注意HTTPS。

    +0

    もう一度感謝します。私はあなたの答えを受け入れる前に、私はあなたに尋ねたい、靴下の要求はどうですか? httpプロキシの場合、私はこれらのCONNECTパケットを送信しなければなりません..そして、靴下のために? HTTPプロキシなどのCONNECTヘッダを持つHTTPリクエストを送信する必要がありますか? – AllExJ

    関連する問題