tcpdump is a data-network
packet analyzer computer program that runs under a
command line interface. It allows the user to display
TCP/IP and other packets being transmitted or received over a
network to which the computer is attached. Distributed under the
BSD license, tcpdump is
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
.
Tcpdump works on most
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s:
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Solaris,
FreeBSD,
DragonFly BSD,
NetBSD,
OpenBSD,
OpenWrt
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux kernel, Linux, primarily used on Embedded system, embedded devices to Router (computing), route network traffic. The main components ...
,
macOS,
HP-UX 11i, and
AIX. In those systems, tcpdump uses the
libpcap library to capture packets. The
port of tcpdump for
Windows is called WinDump; it uses
WinPcap, the Windows version of libpcap.
History
tcpdump was originally written in 1988 by
Van Jacobson,
Sally Floyd,
Vern Paxson and
Steven McCanne who were, at the time, working in the
Lawrence Berkeley Laboratory Network Research Group.
By the late 1990s there were numerous versions of tcpdump distributed as part of various operating systems, and numerous patches that were not well coordinated.
Michael Richardson (mcr) and
Bill Fenner created www.tcpdump.org in 1999.
Common uses
tcpdump prints the contents of network packets. It can read packets from a network interface card or from a previously created saved packet file. tcpdump can write packets to standard output or a file.
It is also possible to use tcpdump for the specific purpose of intercepting and displaying the communications of another user or computer. A user with the necessary privileges on a system acting as a
router or
gateway through which unencrypted traffic such as
Telnet or
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
passes can use tcpdump to view login IDs, passwords, the
URLs and content of websites being viewed, or any other unencrypted information.
The user may optionally apply a
BPF-based filter to limit the number of packets seen by tcpdump; this renders the output more usable on networks with a high volume of traffic.
Example of available capture interfaces on a Linux system:
$ tcpdump -D
1.eth0 p, Running, Connected2.any (Pseudo-device that captures on all interfaces) p, Running3.lo p, Running, Loopback4.bluetooth-monitor (Bluetooth Linux Monitor) ireless5.usbmon2 (Raw USB traffic, bus number 2)
6.usbmon1 (Raw USB traffic, bus number 1)
7.usbmon0 (Raw USB traffic, all USB buses) one8.nflog (Linux netfilter log (NFLOG) interface) one9.nfqueue (Linux netfilter queue (NFQUEUE) interface) one10.dbus-system (D-Bus system bus) one11.dbus-session (D-Bus session bus) one12.bluetooth0 (Bluetooth adapter number 0)
13.eth1 one, Disconnected
Privileges required
In some
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s, a user must have
superuser privileges to use tcpdump because the packet capturing mechanisms on those systems require elevated privileges. However, the -Z option may be used to drop privileges to a specific unprivileged user after capturing has been set up. In other Unix-like operating systems, the packet capturing mechanism can be configured to allow non-privileged users to use it; if that is done, superuser privileges are not required.
See also
*
Tcptrace, a tool for analyzing the logs produced by tcpdump
*
EtherApe, a network mapping tool that relies on sniffing traffic
*
Ngrep, a tool that can match regular expressions within the network packet payloads
*
netsniff-ng, a free Linux networking toolkit
*
Wireshark, a GUI based alternative to tcpdump
References
External links
* {{Official website
Network analyzers
Unix network-related software
Windows network-related software
Free software programmed in C
Cross-platform free software
Free network management software
Software using the BSD license