UTLS 연결을 설정할 때 HTTP 또는 SOCKS5 프록시와 같은 프록시를 활용해야 할 수도 있습니다. 이를 달성하려면 다음 전략을 활용할 수 있습니다.
먼저 사용자 정의 프록시 다이얼러 기능을 만들어야 합니다. 이 함수는 다이얼TLS(network, addr string, _ *tls.Config) (net.Conn, error) 형식을 취합니다. 이 기능을 사용하면 프록시에 전화를 걸어 net.Conn을 설정할 수 있습니다. 그런 다음 핸드쉐이크를 수행하기 전에 net.Conn을 사용하여 UTLS 클라이언트를 생성하십시오.
다음은 사용자 정의 다이얼TLS 기능이 어떻게 보일 수 있는지에 대한 예입니다.
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 }
여기에 몇 가지 추가 사항이 있습니다. 팁:
위 내용은 HTTP 1.1 프록시를 통해 UTLS 연결을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!