ホームページ >バックエンド開発 >Golang >HTTP 1.1 リクエストでプロキシ経由で UTLS 接続を確立するにはどうすればよいですか?

HTTP 1.1 リクエストでプロキシ経由で UTLS 接続を確立するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-27 10:59:10764ブラウズ

How to Establish UTLS Connections Through Proxies with HTTP 1.1 Requests?

UTLS および HTTP 1.1 リクエストを使用しているときにプロキシ経由で接続する

UTLS および HTTP 1.1 リクエストを使用しているときにプロキシ経由で接続を確立するには、特定の設定が必要です

問題:

ランダム化された TLS フィンガープリントのために UTLS 接続を開くときに、HTTP または SOCKS5 プロキシを利用するにはどうすればよいですか?

回答:

プロキシを利用するにはUTLS 接続の場合は、次の手順に従います:

  1. プロキシ ダイヤラーの作成: プロキシ タイプ (HTTP または SOCKS5) を決定し、適切なプロキシ ダイヤラー (例: connectproxy.New()) を作成します。 HTTP または proxy.SOCKS5() の場合SOCKS5).
  2. プロキシにダイヤルします: プロキシ ダイヤラーを使用して、プロキシへの net.Conn 接続を確立します。
  3. UTLS クライアントを構成します:取得した net.Conn を使用して UTLS クライアント (例: tls.UClient()) を初期化します。

プロキシ接続に対応するカスタム DialTLS 関数の例を次に示します:

package main

import (
    "crypto/tls"
    "net"
    "net/url"

    "github.com/magisterquis/connectproxy"
    "golang.org/x/net/proxy"
    utls "github.com/refraction-networking/utls"
)

var proxyString = "http://127.0.0.1:8080"

dialTLS := func(network, addr string, _ *tls.Config) (net.Conn, error) {
    proxyURI, _ := url.Parse(proxyString)

    switch proxyURI.Scheme {
    case "socks5":
        proxyDialer, err = proxy.SOCKS5("tcp", proxyString, nil, proxy.Direct)
    case "http":
        proxyDialer, err = connectproxy.New(proxyURI, proxy.Direct)
    }

    conn, err := proxyDialer.Dial("tcp", addr)
    uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN)
    ...
}

追加の提案:

  • HTTP CONNECT を処理するために「connectproxy」モジュールの使用を検討してください。トンネリング。
  • 両方の SoC のセットアップ プロセスを処理する Tor の Meek プラガブル トランスポートを利用します

以上がHTTP 1.1 リクエストでプロキシ経由で UTLS 接続を確立するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。