run-as-daemon.dev
← Writing
debugging / methodology

tcpdump lied to me for three hours

2026-07-20 · ~5 min

Half of a hard networking bug is the network. The other half is trusting a tool that gives you a confident, wrong answer — and building a whole theory on it.

The false negative that cost me hours

Chasing a tunnel that wouldn’t pass traffic, I fired a single nc datagram at the listen port and watched tcpdump on the far end. Nothing. Obvious conclusion: the provider drops the port. I built an entire relay architecture around that “fact.”

Then I ran the exact same test against a server I knew was serving hundreds of gigabytes to real clients. tcpdump showed nothing there either. The test was worthless — a lone garbage packet is not a valid handshake, and it gets dropped for reasons that have nothing to do with the path.

The loudest hypotheses are the ones your tools can’t actually confirm. A single crafted packet proves almost nothing.

Tests that don’t lie

The eventual fix was a one-word config change. Everything before it was me believing a measurement instead of validating it. Discipline over cleverness, every time.

Keeping infrastructure alive under real conditions is the day job. If your business can’t afford the guessing — turnkey delivery, one accountable owner: ftops.space.