How To Ping In Linux

How To Ping In Linux

Reading time1 min
#Networking#Linux#NetworkDiagnostics#Ping#Sysadmin

Mastering Advanced Ping Techniques in Linux for Reliable Network Diagnostics

A misbehaving network rarely announces itself with a simple "host unreachable." Latency spikes, intermittent packet loss, fluctuating jitter—these are the real nemeses of reliable connectivity. Basic ping barely scratches the surface. Dig deeper and it becomes a precision tool for network characterization.

Below: methods for extracting actionable insights from ping on modern Linux distributions (iputils-ping 2022-06 as shipped with Ubuntu 22.04 and newer).


Baseline: Simple Connectivity Is Only the Start

A textbook check:

ping google.com

Yields:

64 bytes from 142.250.190.14: icmp_seq=1 ttl=117 time=24.6 ms
64 bytes from 142.250.190.14: icmp_seq=2 ttl=117 time=25.0 ms

For quick “up/down” it suffices. For production-grade diagnostics, it’s insufficient—transient loss, path changes, and asymmetric latency are invisible here.


Targeted Diagnostics with Ping Flags

Injecting Higher Packet Rates (-i)

Linux enforces a default 1s interval. For high-frequency sampling, lower the interval:

ping -i 0.2 8.8.8.8

Running as non-root, values below 0.2s are rejected. For root users, intervals can drop lower—a common trick for loss/jitter analysis over short timespans. (Saturation risk: hammering a WAN link can trip router rate limits or even induce DOS mitigations. Observe responsibly.)

Limiting Request Count (-c)

For repeatability and for scripting:

ping -c 20 1.1.1.1

Test cases with fixed packet counts reduce ambiguous results.

Payload Size and MTU Troubleshooting (-s, -M do)

Larger payloads highlight MTU/fragmentation issues. VPNs and tunnels often fail silently with large payloads. Example:

ping -M do -s 1472 8.8.8.8

1472 bytes + 28 bytes (IP/ICMP headers) = 1500 bytes (standard Ethernet MTU). Any failure here, when small pings succeed, points directly at PMTUD blackholes or misconfigured tunnels.
Error to watch:

ping: local error: Message too long, mtu=1500

Flood and Rapid Fire Testing (-f, root-only)

Inject traffic at line rate:

sudo ping -f 8.8.4.4

Visual cue: each period (.) = packet sent, each backspace (\b) = reply.
Used sparingly; continuous flood can saturate links or trigger anti-flooding countermeasures on remote targets.

Record Route (-R)

For rarely-needed but insightful route tracing:

ping -R 8.8.8.8

Each reply includes up to nine intermediate IPs. Most routers ignore this flag, but on simple or internal networks, trace path changes or asymmetry.

Note: Not a substitute for traceroute.

Timestamps (-T)

Add RFC 792 timestamps for each packet:

ping -T tsonly example.com

Useful only where devices propagate and honor the timestamp request. In modern WAN, only a handful of routers respond accurately, but on controlled labs or on-prem equipment it can detect time skew across hops.

Adaptive Timeout Controls (-w, -W)

Total test timeout (-w), and per-response deadline (-W):

ping -c 20 -W 2 -w 15 remote.host

This will abort after 15 seconds regardless of how many packets complete. Each reply waits up to 2 seconds.
If the host is intermittently available (e.g., flapping wireless), these flags prevent hanging scripts.

Suppressing DNS (-n) and Verbose Output (-v)

For raw IP output, skip name lookups:

ping -n 10.13.37.101

Use -v for additional ICMP header info, including errors like “Destination Net Unreachable.”


Real-World Scenarios

Sudden Packet Loss During Video Calls

Bandwidth looks adequate, but users complain of freezing video. Reproduce with:

ping -i 0.2 -c 200 upstream-gateway | tee loss.log

Analyze gaps or bursts in response times. Intermittent "no reply" lines can indicate upstream congestion or even wireless interference, not just outright link failure.

Diagnosing Path MTU Blackholes on IPSec Tunnels

Symptoms: Large downloads stall at seemingly random percentages.

Try:

ping -M do -s 1472 remote-endpoint

If no reply, reduce size by increments (e.g., -s 1400), then update tunnel MTU accordingly.
Side note: Don’t assume all VPN software properly negotiates PMTUD. Sometimes workarounds are necessary.

Detecting Bufferbloat Under Load

Bufferbloat causes latency to soar under upload/download. Stress test with:

sudo ping -f -c 200 8.8.8.8

Run a large file upload simultaneously. Note if time= spikes from ~20ms to 1000ms+. If so, your router is likely buffering excessively and needs SQM/Cake applied.


Pro Tips and Caveats

  • ping's output truncates packet loss spikes below 1% for long test runs. For fine-grained stats, consider mtr or custom parsing scripts.
  • Custom TTL (-t) exposes early hops or edge firewalls that rewrite packets. Useful for ISP or peering troubleshooting.
  • On shared networks, rapid-fire pings can have side effects: log pollution, IDS triggers, DoS flags.
  • The record-route flag is often silently ignored by backbone routers.

Summary Table

Flag(s)Use CaseCaution/Tradeoff
-i, -cInterval, count controlSaturation on low intervals
-M do, -sMTU/fragmentation diagnosisPMTUD may be blocked/dropped
-f (root only)Stress/flood testingNot safe on shared networks
-RPath insight (record-route)Rarely supported
-TTimestamp analysisLimited hardware support
-w, -WOperation, per-reply timeoutPremature exit on slow WAN
-n, -vSpeed/detailed outputRaw IPs only, more noise

Final Note

ping remains indispensable—but only if you drive it beyond its defaults. Scrutinize packet timing, payload sizing, and the rare sub-second anomalies. Often, you’ll spot issues long before higher-level health checks trigger.

For complex or ongoing issues, combine ping with traceroute, mtr, and packet captures (tcpdump). Engineers who master these basic but versatile tools rarely reach for GUIs or heavyweight diagnostics first.