Link killers

Name what drops the path. Then pin it.

The job is still the radio. DNS failover, proxy keep-alive, and a Wireshark pcap exist so a dead resolver or a RST storm cannot impersonate “Wi-Fi off.” This tab measures. The host engine applies.

Host engine

offline

waiting for host

Radio

—

awaiting host

Live DNS

—

unapplied

Proxy

—

direct

Path threats

Host engine offline

Run python3 hardline.py serve on the computer whose radio you want held. This tab can measure DoH; it cannot rewrite system DNS.

Wire · Wireshark

The original job is keep the radio up. This names what is killing it: deauth, DNS rcode, TCP RST, DHCP NAK. tshark if installed, otherwise a pcap you open in Wireshark.

idle

0 frames · 0 killers

TimeSourceDestinationProtocolInfo
No frames match. Start capture on the host — this tab cannot see the wire.

Paste the same filters in Wireshark on the pcap:dns.flags.rcode != 0 || tcp.flags.reset == 1 || bootp.option.dhcp == 6 || icmp.type == 3 || wlan.fc.type_subtype == 12

DNS

A dead resolver looks like a dead radio. Pin one that answers, or let failover rotate Cloudflare → Quad9 → Google when lookup fails.

Fast public resolver. DoH endpoint is measurable from this tab.

Proxy

Sticky outbound so an idle NAT cannot drop you. Probe it — a black-hole proxy is itself a killer, not a hold.

Mechanisms

Applied with the stack. IPv6 and MAC randomization are the usual leak and captive-portal traps.

Radio hold

Host loop keeps the Wi-Fi radio on and reconnects if it drops.

Wi-Fi power save

Stops the chipset parking the radio between frames (Linux iw).

Metered flag

OS treats the link as unmetered so it will not starve updates or sync.

WWAN / cellular

Kills the modem so a Wi-Fi dip cannot silently hop to cellular.

DNS failover

A dead resolver looks like a dead radio. Rotate to Cloudflare / Quad9 / Google if lookup fails.

Proxy keep-alive

Poke the proxy so an idle NAT cannot drop the outbound. A black-hole proxy is itself a killer.

Wire capture

tshark or pcap on the host. Names deauth, DNS rcode, TCP RST, DHCP NAK. Opens in Wireshark.

IPv6

MAC randomization

Resolver ranking

DoH lookup of cloudflare.com from this browser. Fastest is a hint, not a guarantee the host path matches.

  1. Probes run when this page opens.

Host control plane

This page talks to the host engine through the app. For radio, DNS, and proxy apply on your computer, download hardline.py from Lock and run python3 hardline.py serve.

Candidate Cloudflare · direct.