125 commands · 7 cheat sheets · Linux
Networking and Connectivity master quick reference
Browse 125 commands from 7 focused cheat sheets on page 1 of 1. Each example opens its matching detailed section.
Networking and Connectivity · 14 commands
curl and HTTP Debugging Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Include response headers | curl --include https://example.com/health | View examples |
| Request headers only | curl --head https://example.com/asset | View examples |
| Trace protocol exchange | curl --verbose https://example.com/health | View examples |
| Follow redirects | curl --location --max-redirs 5 https://example.com/old | View examples |
| Fail on HTTP errors | curl --fail-with-body https://example.com/api | View examples |
| Print status metadata | curl --silent --output /dev/null --write-out \
'%{http_code}\n' https://example.com/ | View examples |
| Send JSON | curl --json @payload.json https://api.example.com/items | View examples |
| Add a header | curl --header 'Accept: application/json' \
https://api.example.com/items | View examples |
| Upload a file body | curl --upload-file ./artifact.bin \
https://upload.example.com/artifact.bin | View examples |
| Bound time | curl --connect-timeout 5 --max-time 30 \
https://example.com/ | View examples |
| Retry transient failures | curl --retry 3 --retry-all-errors --max-time 30 \
https://example.com/ | View examples |
| Save to an exact path | curl --fail --output ./artifact.tar.gz \
https://example.com/artifact.tar.gz | View examples |
| Use an explicit CA bundle | curl --cacert ./ca.pem https://internal.example/ | View examples |
| Measure phases | curl --output /dev/null --write-out \
'dns=%{time_namelookup} connect=%{time_connect} total=%{time_total}\n' \
https://example.com/ | View examples |
Networking and Connectivity · 18 commands
iproute2 Routing and Traffic Control Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show concise addresses | ip -brief address show | View examples |
| Export routes as JSON | ip -json route show table all | View examples |
| Resolve an IPv4 path | ip route get 203.0.113.10 from 192.0.2.20 | View examples |
| Resolve an IPv6 path | ip -6 route get 2001:db8:2::10 from 2001:db8:1::20 | View examples |
| Show the main table | ip route show table main | View examples |
| Replace a route idempotently | sudo ip route replace 198.51.100.0/24 via 192.0.2.1 dev \
eth0 metric 100 | View examples |
| Delete an exact route | sudo ip route del 198.51.100.0/24 via 192.0.2.1 dev eth0 \
metric 100 | View examples |
| Show policy rules | ip -details rule show | View examples |
| Add a source policy | sudo ip rule add priority 1000 from 192.0.2.0/24 table \
100 | View examples |
| Add a policy-table default | sudo ip route replace default via 192.0.2.1 dev eth0 \
table 100 | View examples |
| Monitor network changes | ip monitor link address route rule | View examples |
| Show neighbor state | ip -details neighbor show dev eth0 | View examples |
| Flush failed neighbors | sudo ip neighbor flush dev eth0 nud failed | View examples |
| Show queue disciplines | tc -s qdisc show dev eth0 | View examples |
| Install fq_codel root qdisc | sudo tc qdisc replace dev eth0 root fq_codel | View examples |
| Add lab delay and loss | sudo tc qdisc replace dev veth-test root netem delay \
50ms loss 0.1% | View examples |
| Remove a root qdisc | sudo tc qdisc del dev veth-test root | View examples |
| Show iproute2 version | ip -Version | View examples |
Networking and Connectivity · 20 commands
Linux DNS Resolution and Resolver Tools Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Resolve through NSS | getent ahosts example.com | View examples |
| Inspect hosts lookup order | grep -E '^[[:space:]]*hosts:' /etc/nsswitch.conf | View examples |
| Identify resolv.conf owner | readlink -f /etc/resolv.conf | View examples |
| Show resolver directives | grep -E \
'^[[:space:]]*(nameserver|search|domain|options)[[:space:]]' \
/etc/resolv.conf | View examples |
| Query an A record | dig example.com A +noall +answer | View examples |
| Query an AAAA record | dig example.com AAAA +noall +answer | View examples |
| Query one DNS server | dig @192.0.2.53 example.com A +noall +answer +comments | View examples |
| Run a reverse lookup | dig -x 192.0.2.25 +noall +answer | View examples |
| Retry DNS over TCP | dig +tcp @192.0.2.53 example.com A | View examples |
| Trace delegation | dig +trace www.example.com | View examples |
| Show effective DNS policy | resolvectl status | View examples |
| Query through systemd-resolved | resolvectl query example.com | View examples |
| Inspect resolver statistics | resolvectl statistics | View examples |
| Bypass the local cache | resolvectl --cache=no query example.com | View examples |
| Flush resolved caches | sudo resolvectl flush-caches | View examples |
| Request DNSSEC records | dig example.com A +dnssec +multi | View examples |
| Show per-link domains | resolvectl domain | View examples |
| Set transient split DNS | sudo resolvectl domain tun0 '~corp.example' | View examples |
| Set a per-link DNS server | sudo resolvectl dns tun0 192.0.2.53 | View examples |
| Revert transient link DNS | sudo resolvectl revert tun0 | View examples |
Networking and Connectivity · 17 commands
Linux Network Diagnostics Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show interface addresses | ip -brief address show | View examples |
| Inspect link counters | ip -s link show dev eth0 | View examples |
| Show routes | ip route show | View examples |
| Resolve an outbound route | ip route get 1.1.1.1 | View examples |
| Inspect neighbors | ip neighbor show | View examples |
| Send a bounded ping | ping -c 4 example.com | View examples |
| Test IPv6 reachability | ping -6 -c 4 example.com | View examples |
| Show listening TCP sockets | ss -lnt | View examples |
| Show established TCP sockets | ss -nt state established | View examples |
| Include owning processes | sudo ss -lntp | View examples |
| Use system name resolution | getent ahosts example.com | View examples |
| Query an A record | dig example.com A | View examples |
| Show concise DNS answers | dig +short example.com AAAA | View examples |
| Fetch response headers | curl -I https://example.com/ | View examples |
| Print an HTTP status | curl -sS -o /dev/null -w '%{http_code}\n' \
https://example.com/ | View examples |
| Bound connection time | curl --connect-timeout 5 https://example.com/ | View examples |
| Trace a request | curl -v --connect-timeout 5 https://example.com/ | View examples |
Networking and Connectivity · 14 commands
Linux nftables Firewall Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| List the ruleset | sudo nft list ruleset | View examples |
| Show rule handles | sudo nft --handle list ruleset | View examples |
| Back up active rules | sudo nft list ruleset > ./nftables.backup | View examples |
| Validate a file | sudo nft --check --file ./nftables.conf | View examples |
| Load a batch | sudo nft --file ./nftables.conf | View examples |
| Create an inet table | sudo nft add table inet filter | View examples |
| Create an input base chain | sudo nft \
'add chain inet filter input { type filter hook input priority filter; policy drop; }' | View examples |
| Allow established traffic | sudo nft add rule inet filter input ct state \
established,related accept | View examples |
| Allow loopback | sudo nft add rule inet filter input iifname lo accept | View examples |
| Allow TCP service | sudo nft add rule inet filter input tcp dport 22 ct \
state new accept comment 'management SSH' | View examples |
| Create an address set | sudo nft \
'add set inet filter admins { type ipv4_addr; flags interval; }' | View examples |
| Count rule matches | sudo nft add rule inet filter input tcp dport 443 \
counter accept | View examples |
| Monitor traces | sudo nft monitor trace | View examples |
| Monitor ruleset events | sudo nft monitor ruleset | View examples |
Networking and Connectivity · 20 commands
NetworkManager Wi-Fi and Connections Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show overall status | nmcli general status | View examples |
| List devices | nmcli device status | View examples |
| List active profiles | nmcli connection show --active | View examples |
| Inspect a profile | nmcli -f connection,ipv4,ipv6 connection show id \
'Office Wi-Fi' | View examples |
| List access points | nmcli -f IN-USE,SSID,BSSID,CHAN,RATE,SIGNAL,SECURITY \
device wifi list ifname wlp2s0 | View examples |
| Request a rescan | nmcli device wifi rescan ifname wlp2s0 | View examples |
| Connect with a prompt | nmcli --ask device wifi connect 'Office Wi-Fi' ifname \
wlp2s0 name 'Office Wi-Fi' | View examples |
| Activate using a secrets file | nmcli connection up id 'Office Wi-Fi' ifname wlp2s0 \
passwd-file /run/user/1000/nm-secrets | View examples |
| Activate by UUID | nmcli connection up uuid \
3f4f1df0-a596-4ca4-94be-31d6c0674c5e ifname wlp2s0 | View examples |
| Deactivate a profile | nmcli connection down uuid \
3f4f1df0-a596-4ca4-94be-31d6c0674c5e | View examples |
| Set autoconnect priority | sudo nmcli connection modify id 'Office Wi-Fi' \
connection.autoconnect yes \
connection.autoconnect-priority 20 | View examples |
| Configure static IPv4 | sudo nmcli connection modify id 'Office LAN' ipv4.method \
manual ipv4.addresses 192.0.2.20/24 ipv4.gateway \
192.0.2.1 | View examples |
| Set profile DNS | sudo nmcli connection modify id 'Office LAN' \
ipv4.ignore-auto-dns yes ipv4.dns \
'192.0.2.53 192.0.2.54' | View examples |
| Add a profile route | sudo nmcli connection modify id 'Office LAN' \
+ipv4.routes '198.51.100.0/24 192.0.2.1, 50' | View examples |
| Reload profiles | sudo nmcli connection reload | View examples |
| Reapply compatible settings | sudo nmcli device reapply wlp2s0 | View examples |
| Run under a checkpoint | sudo nmcli device checkpoint --timeout 60 wlp2s0 -- \
nmcli connection up id 'Office Wi-Fi' | View examples |
| Monitor changes | nmcli monitor | View examples |
| Read service logs | journalctl -u NetworkManager.service --since today \
--no-pager | View examples |
| Show nmcli version | nmcli --version | View examples |
Networking and Connectivity · 22 commands
WireGuard VPN Cheat Sheet
| Use | Syntax | Examples |
|---|---|---|
| Show all interfaces | sudo wg show | View examples |
| Show runtime configuration | sudo wg showconf wg0 | View examples |
| List WireGuard interfaces | wg show interfaces | View examples |
| Generate a private key | umask 077; wg genkey > privatekey | View examples |
| Derive a public key | wg pubkey < privatekey > publickey | View examples |
| Generate a preshared key | umask 077; wg genpsk > presharedkey | View examples |
| Create an interface | sudo ip link add dev wg0 type wireguard | View examples |
| Load configuration | sudo wg setconf wg0 /etc/wireguard/wg0.conf | View examples |
| Assign a tunnel address | sudo ip address add 10.20.0.1/24 dev wg0 | View examples |
| Bring the link up | sudo ip link set up dev wg0 | View examples |
| Start with wg-quick | sudo wg-quick up wg0 | View examples |
| Stop with wg-quick | sudo wg-quick down wg0 | View examples |
| Save runtime state | sudo wg-quick save wg0 | View examples |
| Synchronize peer config | sudo wg syncconf wg0 /run/wireguard/wg0.stripped.conf | View examples |
| Strip wg-quick fields | sudo wg-quick strip wg0 | View examples |
| Check route selection | ip route get 10.20.0.2 | View examples |
| Show handshake epochs | sudo wg show wg0 latest-handshakes | View examples |
| Show transfer counters | sudo wg show wg0 transfer | View examples |
| Show learned endpoints | sudo wg show wg0 endpoints | View examples |
| Update one peer | sudo wg set wg0 peer PUBLIC_KEY allowed-ips 10.20.0.2/32 \
endpoint vpn.example.net:51820 | View examples |
| Remove a peer | sudo wg set wg0 peer PUBLIC_KEY remove | View examples |
| Show tools version | wg --version | View examples |



