Heim >Backend-Entwicklung >Golang >Wie stelle ich UTLS-Verbindungen über HTTP 1.1 Proxy her?

Wie stelle ich UTLS-Verbindungen über HTTP 1.1 Proxy her?

Susan Sarandon
Susan SarandonOriginal
2024-11-15 13:29:02848Durchsuche

How to Establish UTLS Connections via HTTP 1.1 Proxy?

Proxy-UTLS-Verbindungen über HTTP 1.1

Beim Aufbau von UTLS-Verbindungen kann es erforderlich sein, einen Proxy zu verwenden, beispielsweise einen HTTP- oder SOCKS5-Proxy. Um dies zu erreichen, können Sie die folgenden Strategien nutzen:

Zuerst müssen Sie eine benutzerdefinierte Proxy-Dialer-Funktion erstellen. Diese Funktion hat die Form dialTLS(network, addr string, _ *tls.Config) (net.Conn, error). Mit dieser Funktion können Sie den Proxy anwählen, um eine net.Conn aufzubauen. Verwenden Sie anschließend net.Conn, um einen UTLS-Client zu erstellen, bevor Sie den Handshake durchführen.

Unten finden Sie ein Beispiel dafür, wie Ihre benutzerdefinierte dialTLS-Funktion aussehen könnte:

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
}

Hier sind einige zusätzliche Tipps:

  • Erwägen Sie die Verwendung des Moduls „connectproxy“, wenn Sie einen Tunnel über ein HTTP CONNECT planen Proxy.
  • Entdecken Sie die steckbare Transportquelle von Meek für Tor. Sein Modul „utls.go“ vereinfacht den Prozess, einschließlich der Einrichtung von HTTP- oder HTTP2-Transporten basierend auf dem ausgehandelten ALPN-Protokoll. Es unterstützt derzeit SOCKS, kann aber für HTTP-Proxys angepasst werden.

Das obige ist der detaillierte Inhalt vonWie stelle ich UTLS-Verbindungen über HTTP 1.1 Proxy her?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn