UTLS および HTTP 1.1 リクエスト経由で接続中にプロキシを利用する方法
ネットワーク通信の領域では、プロキシを介して接続する機能UTLS (TLS プロトコルの実装) と HTTP 1.1 リクエストの利用は貴重な機能です。これにより、開発者は中間サーバーを介してホストへの安全な接続を確立し、さまざまなネットワーク アクセスやセキュリティ シナリオに対処できるようになります。
これを実現するには、カスタム DialTLS 機能を使用できます。この関数は、network (「tcp」などのネットワーク タイプ)、addr (接続先のアドレス)、および cfg (TLS 構成オブジェクト) の 3 つのパラメータを取ります。以下は、HTTP と SOCKS5 プロキシの両方をサポートするカスタム DialTLS 関数の例です:
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) { // Parse the proxy URI proxyURI, _ := url.Parse(proxyString) // Create a proxy dialer based on the scheme 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) } // Dial the proxy to establish a net.Conn conn, err := proxyDialer.Dial("tcp", addr) if err != nil { return nil, err } // Create a UTLS client using the established net.Conn uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN) return uconn, nil }
この関数内では、使いやすさと柔軟性を高めるためのいくつかの提案を考慮することが重要です:
以上がUTLS および HTTP 1.1 リクエストを使用してプロキシ経由で接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。