Maison > développement back-end > Golang > Comment établir des connexions UTLS via le proxy HTTP 1.1 ?

Comment établir des connexions UTLS via le proxy HTTP 1.1 ?

Susan Sarandon
Libérer: 2024-11-15 13:29:02
original
902 Les gens l'ont consulté

How to Establish UTLS Connections via HTTP 1.1 Proxy?

Connexions UTLS proxy via HTTP 1.1

Lors de l'établissement de connexions UTLS, vous pouvez rencontrer la nécessité d'utiliser un proxy, tel qu'un proxy HTTP ou SOCKS5. Pour y parvenir, vous pouvez tirer parti des stratégies suivantes :

Tout d'abord, vous devrez créer une fonction de numérotation proxy personnalisée. Cette fonction prend la forme de dialTLS(network, addr string, _ *tls.Config) (net.Conn, erreur). En utilisant cette fonction, vous pouvez composer le proxy pour établir un net.Conn. Ensuite, utilisez net.Conn pour créer un client UTLS avant d'effectuer la poignée de main.

Voici un exemple de ce à quoi pourrait ressembler votre fonction dialTLS personnalisée :

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)

    var proxyDialer proxy.Dialer
    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)
    // ... continue handshake and request
}
Copier après la connexion

Voici quelques éléments supplémentaires conseils :

  • Envisagez d'utiliser le module "connectproxy" si vous envisagez d'effectuer un tunneling via un proxy HTTP CONNECT.
  • Explorez la source de transport enfichable Meek pour Tor. Son module 'utls.go' simplifie le processus, notamment la configuration du transport HTTP ou HTTP2 basé sur le protocole ALPN négocié. Il prend actuellement en charge SOCKS mais peut être adapté pour les proxys HTTP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal