Skip to content

Instantly share code, notes, and snippets.

@kkc
Created April 1, 2020 02:50
Show Gist options
  • Save kkc/217b6265a40e130abfde30dd7840df5c to your computer and use it in GitHub Desktop.
Save kkc/217b6265a40e130abfde30dd7840df5c to your computer and use it in GitHub Desktop.
ifconfig (or ip link, ip addr) - for obtaining information about network interfaces
ping
for validating, if target host is accessible from my machine.
ping is also could be used for basic DNS diagnostics - we could ping host by IP-address or by its hostname and then decide if DNS works at all. And then traceroute or tracepath or mtr to look what's going on on the way there.
dig
diagnose everything DNS
dmesg | less or dmesg | tail or dmesg | grep -i error
for understanding what the Linux kernel thinks about some trouble.
netstat -antp + | grep smth
my most popular usage of netstat command, which shows information about TCP connections. Often I perform some filtering using grep. See also the new
ss command (from iproute2 the new standard suite of Linux networking tools) and lsofas in lsof -ai tcp -c some-cmd.
telnet <host> <port>
is very useful for communicating with various TCP-services(e.g. on SMTP, HTTP protocols), also we could check general opportunity to connect to some TCP port.
iptables-save (on Linux) - to dump the full iptables tables
ethtool
get all the network interface card parameters (status of the link, speed, offload parameters...)
socat
the swiss army tool to test all network protocols (UDP, multicast, SCTP...). Especially useful (more so than telnet) with a few
d
options.
iperf
to test bandwidth availability
openssl (s_client, ocsp, x509...) to debug all SSL/TLS/PKI issues.
wireshark
the powerful tool for capturing and analyzing network traffic, which allows you to analyze and catch many network bugs.
iftop
show big users on the network/router.
iptstate (on Linux) - current view of the firewall's connection tracking.
arp (or the new (Linux) ip neigh) - show the ARP-table status.
route or the newer (on Linux) ip route
show the routing table status.
strace (or truss, dtrace or tusc depending on the system) - is useful tool which shows what system calls does the problem process, it also shows error codes(errno) when system calls fails. This information often says enough for understanding the system behavior and solving a problem. Alternatively, using breakpoints on some networking functions in gdb can let you find out when they are made and with which arguments.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment