
The XDA writer who “fixed” gigabit internet by forcing it slower learned something a lot of home labs learn eventually: a link negotiating at less than its rated speed can be a cable problem, a NIC EEE setting, a driver bug, a switch port mismatch, or a marginal power supply. The router’s speed test never tells you which. These best apps for ethernet link speed diagnostics on desktop show the layer-2 negotiation, the throughput ceiling, and the packet-level cause on Windows, macOS, and Linux.
What to look for in an ethernet diagnostic
- Link-layer visibility. Speed tests measure application throughput. You need
ethtool-style output to see 1000baseT vs 100baseTX and full vs half duplex. - Loopback throughput. iperf3 to a second machine on the same switch confirms whether the ceiling is the LAN or the WAN.
- Cable diagnostics. Modern NICs run TDR on the cable and report which pair is bad.
- Driver detail. Windows and macOS hide auto-negotiation state; the right tool exposes it.
- Sensible output. Diagnostic dumps are useless if you cannot read them.
Quick comparison
| App | Best for | Free plan | Starting price | Rating |
|---|---|---|---|---|
| ethtool | Link status on Linux | Fully free | $0 | The kernel-adjacent standard |
| iperf3 | LAN throughput ceiling | Fully free | $0 | The default benchmark |
| Ookla Speedtest CLI | WAN throughput | Fully free | $0 | Same servers as speedtest.net |
| LibreSpeed | Self-hosted WAN test | Fully free | $0 | Runs on your own hardware |
| Wireshark | Packet-level causes | Fully free | $0 | Industry standard capture |
| PowerShell Get-NetAdapter | Windows link status | Bundled | $0 | Built into Windows |
| cabletest.co utilities | Cable diagnostics | Freemium | $19 (Pro) | TDR without a hardware tester |
| Angry IP Scanner | LAN mapping | Fully free | $0 | Fastest LAN sweep |
The apps
1. ethtool — best link status on Linux
ethtool talks directly to the network driver and dumps every property of a physical NIC. ethtool eth0 shows negotiated speed, duplex, and auto-negotiation state; ethtool --show-eee eth0 shows Energy Efficient Ethernet flags that XDA’s gigabit-slower fix touched.
Where it falls short: Linux only. Some virtualized NICs (E1000, virtio-net) show partial output.
Pricing:
- Free: GPL 2.
- Paid: none.
Platforms: Linux, BSD.
Download: apt install ethtool on Debian/Ubuntu, dnf install ethtool on Fedora, pkg install ethtool on FreeBSD.
Bottom line: the first command to run when Linux says the link is up but throughput is not.
2. iperf3 — best LAN throughput ceiling
iperf3 runs a server on one machine and a client on another, then measures the throughput between them for a set duration. On a healthy gigabit LAN, single-stream iperf3 hits about 940 Mbps; anything below 800 with default MTU is a red flag.
Where it falls short: you need two machines. WAN tests over iperf3 are useful only if you control both ends.
Pricing:
- Free: BSD.
- Paid: none.
Platforms: Windows, macOS, Linux, iOS, Android. Download: iperf.fr Bottom line: the only reliable way to isolate whether the ceiling is your LAN or your ISP.
3. Ookla Speedtest CLI — best WAN throughput test
Ookla Speedtest CLI runs the same test the browser version runs, without a browser. speedtest --format=json outputs a structured result you can log every hour to a CSV and spot trends.
Where it falls short: you send anonymized telemetry to Ookla by default. First run asks for license acceptance.
Pricing:
- Free: Ookla license (proprietary).
- Paid: none for the CLI.
Platforms: Windows, macOS, Linux, FreeBSD. Download: Speedtest CLI Bottom line: the standard for “what is my ISP giving me right now.”
4. LibreSpeed — best self-hosted speed test
LibreSpeed is an open-source speed test you can host on a home server or Raspberry Pi. Point it at your ISP endpoint and every phone on the network runs the same test against your own hardware, ruling out server-side variance.
Where it falls short: you have to host it. Accuracy depends on the CPU of the machine running the LibreSpeed backend.
Pricing:
- Free: LGPL 3.
- Paid: none.
Platforms: Docker, PHP-capable webserver, Node.js. Download: LibreSpeed on GitHub Bottom line: the pick if you want a test result you completely control.
5. Wireshark — best for packet-level causes
Wireshark captures every frame on the wire and shows why a link is slow at the protocol level. Retransmissions, TCP window issues, DNS latency, and duplicate ACKs all surface here.
Where it falls short: it is an intermediate-plus tool. Reading captures takes practice.
Pricing:
- Free: GPL 2.
- Paid: none.
Platforms: Windows, macOS, Linux. Download: Wireshark Bottom line: for the “iperf says 200 Mbps and I don’t know why” moment.
6. PowerShell Get-NetAdapter — best Windows built-in
PowerShell Get-NetAdapter and Get-NetAdapterAdvancedProperty expose the same negotiation state ethtool shows on Linux. Get-NetAdapter | Select-Object Name, LinkSpeed, MediaConnectionState, FullDuplex. Get-NetAdapterAdvancedProperty shows every driver-exposed setting including EEE and interrupt moderation.
Where it falls short: the naming of advanced properties differs between Realtek, Intel, and Broadcom drivers; scripting cross-vendor is fiddly.
Pricing:
- Free: bundled with Windows.
- Paid: none.
Platforms: Windows 10 or later.
Download: built in. Open PowerShell as admin, run Get-NetAdapter.
Bottom line: the first thing to try on Windows before installing anything else.
7. cabletest.co utilities — best cable diagnostics without a hardware tester
cabletest.co utilities runs cable diagnostics using the NIC’s built-in TDR (time domain reflectometry). Most Intel and Realtek NICs since 2015 can report which pair of a Cat5e/Cat6 cable is shorted or open, and cabletest.co’s utilities read those results without a $500 Fluke.
Where it falls short: results depend on the NIC being supported. Some Realtek chips report noise-heavy readings.
Pricing:
- Free: cabletest.co utilities Community Edition.
- Paid: Pro tools at $19 one-time.
Platforms: Windows, Linux (via ethtool cabletest on capable NICs).
Download: on Linux: ethtool --test <iface> --cable. On Windows: cabletest.co utilities from cabletest.co.
Bottom line: the way to tell a bad crimp from a bad NIC without buying a hardware cable tester.
8. Angry IP Scanner — best LAN mapping
Angry IP Scanner sweeps the local subnet, resolves hostnames, and shows open ports. Useful when the reason a NIC negotiates slow is that a rogue device on the network is broadcasting badly formed frames.
Where it falls short: it is a scanner, not a diagnostic. Use it to find the culprit, use ethtool or Wireshark to prove it.
Pricing:
- Free: GPL 2.
- Paid: none.
Platforms: Windows, macOS, Linux. Download: Angry IP Scanner Bottom line: the fastest way to see everything on your LAN in under a minute.
How to pick the right one
Start with the built-in tool for your OS: ethtool on Linux, Get-NetAdapter on Windows, networksetup -getMTU en0 and ifconfig on macOS. If throughput is low: iperf3 to a second machine, then Ookla Speedtest CLI to the outside world. If you host your own testing target: LibreSpeed. If iperf3 shows slow speeds: Wireshark to inspect retransmits and TCP windows. If you suspect the cable: cabletest.co utilities or ethtool --cable. If a foreign device on the LAN is the culprit: Angry IP Scanner to find it.
FAQ
Why does my gigabit link negotiate at 100 Mbps?
Usually one of: a cable with only two of four pairs (Cat3 or damaged Cat5), a NIC or switch port set to a fixed speed, Energy Efficient Ethernet negotiating poorly, or a driver bug on Realtek chips. ethtool or Get-NetAdapter shows which.
Why does iperf3 show a different speed than the browser speed test?
Because iperf3 tests inside your LAN and the browser test goes over the WAN. If iperf3 shows 940 Mbps and speedtest.net shows 200 Mbps, your ISP or router is the bottleneck. If iperf3 also shows 200 Mbps, the LAN is.
Should I disable Energy Efficient Ethernet?
Only if your NIC and switch are both on old firmware that negotiates EEE badly. The XDA “make it slower” fix was disabling EEE on a mismatched pair. Modern NICs and switches (post-2019) handle EEE cleanly; do not disable by default.
What is the best ethernet diagnostic app on macOS?
macOS ships networkQuality for a rough speed test and netstat -I en0 for interface stats. Install iperf3 via Homebrew for LAN benchmarking, Wireshark for packet capture.
Is there a way to speed-test the WAN without sending data to Ookla?
Yes. LibreSpeed on a VPS or a cloud instance of your choice replaces the Ookla server. Your speed data never leaves your endpoints.