egress-traffic.md

September 21, 2026 ยท View on GitHub

This document specifies the supported egress traffic for GA.

Actor TCP egress (except DNS traffic on port 53) is redirected to atunnel, which opens a CONNECT tunnel to the egress gateway. Egress gateway applies policy.

DNS-over-TCP, UDP and other traffic is filtered by nftables and never reaches the gateway.

TCP

PortTrafficBehaviorPathWhat the actor sees when refused
anyHTTP(S) 1.1 / 2Supported with policy controlsatunnel -> egress gateway -> origin403 Forbidden
anyWebSocketBlockedn/a403 Forbidden
anyStandard HTTP(S) CONNECT (forward-proxy tunnel)Blockedn/a403 Forbidden
53DNSAllowed via netfilter rulesnftables -> node-configured DNSn/a
anyAny other TCPBlockedn/aThe connection is accepted and then closed with no bytes returned. There is no status code. atunnel logs the failure.

UDP

PortTrafficBehaviorPathWhat the actor sees when refused
53DNSAllowed via netfilter rulesnftables -> node-configured DNSn/a
any otherAny other UDPBlockedn/aPackets are dropped, not rejected: no ICMP port-unreachable is sent, so the client hangs until its own timeout.

Other protocols

Everything that is neither TCP nor UDP is blocked. Packets are dropped, not rejected: no ICMP port-unreachable is sent, so the client hangs until its own timeout.

Requesting support

If you would like Substrate to support egress traffic that is blocked above, please file an issue describing your use case.