Heim > Artikel > Backend-Entwicklung > Wie verwende ich Proxys mit UTLS- und HTTP 1.1-Anfragen?
Verwenden Sie Proxys mit UTLS- und HTTP 1.1-Anfragen
Frage:
Wie stellen Sie eine Verbindung her? an einen Host, der UTLS mit einem zufälligen TLS-Fingerabdruck verwendet und gleichzeitig HTTP oder SOCKS5 verwendet Proxy?
Antwort:
Um Proxys mit UTLS- und HTTP 1.1-Anfragen zu verwenden, können Sie die folgenden Schritte ausführen:
1. Erstellen Sie einen Proxy-Dialer:
Erstellen Sie zunächst einen Proxy-Dialer, der den Proxy anwählt und eine net.Conn zurückgibt. Hier ist ein vereinfachtes Beispiel:
import ( "net/url" "github.com/magisterquis/connectproxy" "golang.org/x/net/proxy" ) 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, _ = proxy.SOCKS5("tcp", proxyString, nil, proxy.Direct) case "http": proxyDialer, _ = connectproxy.New(proxyURI, proxy.Direct) } return proxyDialer.Dial("tcp", addr) }
2. Wählen Sie den Proxy und erstellen Sie einen UTLS-Client:
Sobald Sie einen Proxy-Dialer haben, wählen Sie den Proxy, um eine net.Conn zu erstellen. Verwenden Sie dann diese net.Conn beim Erstellen des UTLS-Clients vor dem Handshaking. Zum Beispiel:
import ( "github.com/refraction-networking/utls" ) uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN)
3. HTTP-Anfrage über UTLS-Verbindung senden:
Schließlich können Sie die UTLS-Verbindung verwenden, um eine HTTP 1.1-Anfrage zu senden. So können Sie es tun:
req := &http.Request{ Method: "GET", URL: &url.URL{Host: "www.example.com", Path: "/"}, Header: make(http.Header), } req.Proto = "HTTP/1.1" req.ProtoMajor = 1 req.ProtoMinor = 1 if err := req.Write(uconn); err != nil { return nil, err }
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWie verwende ich Proxys mit UTLS- und HTTP 1.1-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!