Maison >développement back-end >Golang >Comment établir des connexions UTLS via le proxy 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 }
Voici quelques éléments supplémentaires conseils :
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!