Modify SNI logic: always use "localhost" as SNI to avoid IP blocking (#934)

This commit is contained in:
chenxudong2020
2025-06-05 11:56:07 +08:00
committed by GitHub
parent 96fc19b803
commit 3fb172b4d2

View File

@@ -204,12 +204,12 @@ impl WSTunnelConnector {
init_crypto_provider(); init_crypto_provider();
let tls_conn = let tls_conn =
tokio_rustls::TlsConnector::from(Arc::new(get_insecure_tls_client_config())); tokio_rustls::TlsConnector::from(Arc::new(get_insecure_tls_client_config()));
let domain_or_ip = match domain { // Modify SNI logic: always use "localhost" as SNI to avoid IP blocking.
None => host.to_string(), let sni = "localhost";
Some(domain) => domain.to_string(), let server_name = rustls::pki_types::ServerName::try_from(sni)
}; .map_err(|_| TunnelError::InvalidProtocol("Invalid SNI".to_string()))?;
let stream = tls_conn let stream = tls_conn
.connect(domain_or_ip.try_into().unwrap(), stream) .connect(server_name, stream)
.await?; .await?;
MaybeTlsStream::Rustls(stream) MaybeTlsStream::Rustls(stream)
} else { } else {