Search Results for

    Show / Hide Table of Contents

    Class TransparentProxyEndPoint

    A proxy end point client is not aware of. Useful when requests are redirected to this proxy end point through port forwarding via router.

    When EnableHttp3 is true (and EnableHttp3 is enabled with DecryptSsl), the endpoint also listens for HTTP/3 on the same IP:port over UDP and injects Alt-Svc: h3=":PORT" into H1/H2 responses — reverse HTTPS with Alt-Svc advertisement.

    Inheritance
    object
    ProxyEndPoint
    TransparentBaseProxyEndPoint
    TransparentProxyEndPoint
    Inherited Members
    TransparentBaseProxyEndPoint.ForwardHost
    TransparentBaseProxyEndPoint.ForwardPort
    TransparentBaseProxyEndPoint.Passthrough
    TransparentBaseProxyEndPoint.TerminateTls
    TransparentBaseProxyEndPoint.MaxConcurrentTlsHandshakes
    TransparentBaseProxyEndPoint.TlsHandshakeTimeout
    TransparentBaseProxyEndPoint.TerminateTlsAlpn
    TransparentBaseProxyEndPoint.PassthroughRoutes
    TransparentBaseProxyEndPoint.PassthroughDefaultClusterId
    TransparentBaseProxyEndPoint.PassthroughSniReadTimeout
    TransparentBaseProxyEndPoint.PassthroughIdleTimeout
    TransparentBaseProxyEndPoint.PassthroughProxyProtocol
    TransparentBaseProxyEndPoint.StreamFilters
    TransparentBaseProxyEndPoint.ForwardCleartext
    ProxyEndPoint.IpAddress
    ProxyEndPoint.Port
    ProxyEndPoint.ToString()
    ProxyEndPoint.DecryptSsl
    ProxyEndPoint.AcceptConnectTcp
    ProxyEndPoint.AcceptWebTransport
    ProxyEndPoint.AcceptConnectUdp
    ProxyEndPoint.ConnectUdpOptions
    ProxyEndPoint.GenericCertificate
    ProxyEndPoint.SniCertificates
    ProxyEndPoint.ClientCertificateMode
    ProxyEndPoint.ClientCertificateTrustedRoots
    ProxyEndPoint.AcceptProxyProtocol
    ProxyEndPoint.ReusePort
    ProxyEndPoint.TrustedProxyProtocolSources
    ProxyEndPoint.MaxCachedConnections
    ProxyEndPoint.MaxConcurrentClients
    ProxyEndPoint.EnableHttpInterception
    ProxyEndPoint.AdmittedClientCount
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Titanium.Web.Proxy.Models
    Assembly: Titanium.Web.Proxy.dll
    Syntax
    public class TransparentProxyEndPoint : TransparentBaseProxyEndPoint

    Constructors

    | Edit this page View Source

    TransparentProxyEndPoint(IPAddress, int, bool)

    Initialize a new instance.

    Declaration
    public TransparentProxyEndPoint(IPAddress ipAddress, int port, bool decryptSsl = true)
    Parameters
    Type Name Description
    IPAddress ipAddress

    Listening Ip address.

    int port

    Listening port.

    bool decryptSsl

    Should we decrypt ssl?

    Properties

    | Edit this page View Source

    AltSvc

    Overrides the client-facing Alt-Svc value injected when EnableHttp3 is on. Null keeps h3=":port"; ma=86400. Assign a new instance to apply changes; editing the fields of the current instance is ignored because the header text is cached on assignment. Explicit and SOCKS endpoints never inject this header: they speak TCP to the client, and HTTP/3 there would require a proxy protocol that clients do not use. The H2-to-H3 bridge also never injects it (a mid-connection upgrade breaks Chrome).

    Declaration
    [Experimental("TWP001")]
    public AltSvcOptions? AltSvc { get; set; }
    Property Value
    Type Description
    AltSvcOptions
    | Edit this page View Source

    EnableHttp3

    When true, also accept inbound HTTP/3 (QUIC) on the same IP:port as the TCP listener and advertise it via Alt-Svc on H1/H2 responses. Requires EnableHttp3 and DecryptSsl. Default: false.

    Experimental: Suppress TWP001 to opt in.

    Declaration
    [Experimental("TWP001")]
    public bool EnableHttp3 { get; set; }
    Property Value
    Type Description
    bool
    | Edit this page View Source

    GenericCertificateName

    Name of the Certificate need to be sent (same as the hostname we want to proxy). This is valid only when UseServerNameIndication is set to false.

    Declaration
    public override string GenericCertificateName { get; set; }
    Property Value
    Type Description
    string
    Overrides
    TransparentBaseProxyEndPoint.GenericCertificateName
    | Edit this page View Source

    HandshakeTimeout

    Maximum time allowed for the QUIC handshake when EnableHttp3 is on. Default: 30 seconds.

    Declaration
    [Experimental("TWP001")]
    public TimeSpan HandshakeTimeout { get; set; }
    Property Value
    Type Description
    TimeSpan
    | Edit this page View Source

    IdleTimeout

    QUIC connection idle timeout when EnableHttp3 is on. Default: 60 seconds.

    Declaration
    [Experimental("TWP001")]
    public TimeSpan IdleTimeout { get; set; }
    Property Value
    Type Description
    TimeSpan
    | Edit this page View Source

    MaxInboundBidirectionalStreams

    Maximum concurrent inbound client-initiated bidirectional streams per QUIC connection when EnableHttp3 is on. Default: 100.

    Declaration
    [Experimental("TWP001")]
    public int MaxInboundBidirectionalStreams { get; set; }
    Property Value
    Type Description
    int
    | Edit this page View Source

    MaxInboundUnidirectionalStreams

    Maximum concurrent inbound client-initiated unidirectional streams per QUIC connection when EnableHttp3 is on. Values below 3 are clamped to 3. Default: 3.

    Declaration
    [Experimental("TWP001")]
    public int MaxInboundUnidirectionalStreams { get; set; }
    Property Value
    Type Description
    int

    Events

    | Edit this page View Source

    BeforeHttpAuthenticate

    Before handling a cleartext (non-TLS) client session — including prior-knowledge HTTP/2 (h2c) — this event is fired so upstream protocol policy can be set without a ClientHello.

    Declaration
    public event AsyncEventHandler<BeforeHttpAuthenticateEventArgs>? BeforeHttpAuthenticate
    Event Type
    Type Description
    AsyncEventHandler<BeforeHttpAuthenticateEventArgs>
    | Edit this page View Source

    BeforeQuicAuthenticate

    Fired before the QUIC TLS handshake completes for each inbound HTTP/3 connection when EnableHttp3 is on.

    Declaration
    [Experimental("TWP001")]
    public event AsyncEventHandler<BeforeQuicAuthenticateEventArgs>? BeforeQuicAuthenticate
    Event Type
    Type Description
    AsyncEventHandler<BeforeQuicAuthenticateEventArgs>
    | Edit this page View Source

    BeforeSslAuthenticate

    Before Ssl authentication this event is fired.

    Declaration
    public event AsyncEventHandler<BeforeSslAuthenticateEventArgs>? BeforeSslAuthenticate
    Event Type
    Type Description
    AsyncEventHandler<BeforeSslAuthenticateEventArgs>
    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX