Routing raw TCP streams (such as database connections or MQTT IoT traffic) across a unified edge proxy using TLS SNI multiplexing requires validating TCP entrypoints and SNI host rules. Traefik supports native Layer 4 TCP routing with optional TLS termination. Windows Sandbox on Windows 11 provides a secure, disposable container for validating TCP stream multiplexing safely without modifying host system network configurations.
Why Test TCP Muxing in Windows Sandbox
Testing Layer 4 TCP proxying directly on host workstations can conflict with existing SQL Server or Postgres database listeners. Launching Traefik inside an isolated Windows Sandbox enables engineers to test TCP SNI matching, TLS passthrough, and backend stream forwarding safely.
Authoring the Windows Sandbox WSB XML
Save the following XML document as TraefikTCPMuxSandbox.wsb on your Windows 11 machine:
<Configuration>
<VGpu>Default</VGpu>
<Networking>Default</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\TraefikTCPMuxLab</HostFolder>
<SandboxFolder>C:\TraefikTCPMuxLab</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>powershell.exe -ExecutionPolicy Bypass -NoExit -File C:\TraefikTCPMuxLab\setup-tcpmux.ps1</Command>
</LogonCommand>
</Configuration>
PowerShell Deployment Bootstrapper
Save the bootstrapping script as C:TraefikTCPMuxLabsetup-tcpmux.ps1:
Write-Host "Setting up Traefik TCP Multiplexing Lab..." -ForegroundColor Cyan
$Dir = "C:Traefik"
New-Item -ItemType Directory -Force -Path $Dir | Out-Null
$ZipUrl = "https://github.com/traefik/traefik/releases/download/v3.0.0/traefik_v3.0.0_windows_amd64.zip"
Invoke-WebRequest -Uri $ZipUrl -OutFile "$Dir raefik.zip"
Expand-Archive -Path "$Dir raefik.zip" -DestinationPath $Dir -Force
$Config = @"
entryPoints:
dbentry:
address: ":5432"
tcp:
routers:
db-router:
rule: "HostSNI(`db.example.com`)"
service: "postgres-backend"
tls:
passthrough: true
services:
postgres-backend:
loadBalancer:
servers:
- address: "127.0.0.1:5433"
"@
Set-Content -Path "$Dir raefik.yml" -Value $Config
Write-Host "Traefik TCP Router Configured with TLS Passthrough." -ForegroundColor Green
Testing TCP SNI Routing
Launch the sandbox configuration and run OpenSSL s_client tests against port 5432 with -servername db.example.com. Confirm that Traefik passes through the raw TLS stream to the target backend port. Closing the sandbox leaves no residual configuration files.