Difference between revisions of "Tcpdump howto"

From thelinuxwiki
Jump to: navigation, search
(reading tcpdump captures)
 
(5 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Changing packet size in the capture file:]]
+
 
 +
== capturing ==
 +
 
 +
 
 +
Changing packet size in the capture file:
  
 
By default, when capturing packets into a file, it will save only 68 bytes of the data from each packet.  The -s command line switch tells tcpdump how many bytes for each packet to save. Specifying 0 as a packet’s snapshot length tells tcpdump to save whole packet.
 
By default, when capturing packets into a file, it will save only 68 bytes of the data from each packet.  The -s command line switch tells tcpdump how many bytes for each packet to save. Specifying 0 as a packet’s snapshot length tells tcpdump to save whole packet.
Line 10: Line 14:
  
  
== Showing link level headers (MAC addresses) ==
+
'''Showing link level headers (MAC addresses)'''
 
   tcpdump -e -i ethxxx
 
   tcpdump -e -i ethxxx
  
  
== filtering for specific sources and destinations ==
+
'''filtering for specific sources and destinations'''
 
   tcpdump -nnei eth1-01 '((host 192.168.1.1 and host 172.16.0.1) or (host 10.0.0.1 and host 172.16.0.1))'
 
   tcpdump -nnei eth1-01 '((host 192.168.1.1 and host 172.16.0.1) or (host 10.0.0.1 and host 172.16.0.1))'
  
 +
'''filtering based on TCP flags'''
 +
 +
filter for packets with RST flag set
 +
tcpdump -nnei eth0 'tcp[tcpflags] & tcp-rst != 0'
 +
 +
 +
'''gentoo output file'''
 +
 +
On gentoo, the output file sometimes goes where it wants to, instead of where I tell it with the -o option.  That location is...
  
== gentoo output file ==
 
 
  default location /var/lib/tcpdump/
 
  default location /var/lib/tcpdump/
  
 +
 +
== reading tcpdump captures ==
 +
 +
It is a pain sometimes to transfer tcpdump to another device for viewing in Wireshark or other utilities.  The same filters that apply to capturing can be applied to reading the tcpdump capture file.
 +
 +
# tcpdump -r <path to file>
 +
 +
showing the data portion of a packet
 +
 +
# tcpdump -X -r <path to file>
 +
 +
double X will also display the link level headers
 +
-XX
 +
 +
show absolute (not relative) sequence numbers
 +
-S or --absolute-tcp-sequence-numbers
  
 
[[Category:Linux]]
 
[[Category:Linux]]

Latest revision as of 21:03, 28 January 2016

capturing

Changing packet size in the capture file:

By default, when capturing packets into a file, it will save only 68 bytes of the data from each packet. The -s command line switch tells tcpdump how many bytes for each packet to save. Specifying 0 as a packet’s snapshot length tells tcpdump to save whole packet.

example: tcpdump -w file.cap -s 0


UNIX tcpdump 3.9.4(Freebsd, ipso)


Showing link level headers (MAC addresses)

 tcpdump -e -i ethxxx


filtering for specific sources and destinations

 tcpdump -nnei eth1-01 '((host 192.168.1.1 and host 172.16.0.1) or (host 10.0.0.1 and host 172.16.0.1))'

filtering based on TCP flags

filter for packets with RST flag set

tcpdump -nnei eth0 'tcp[tcpflags] & tcp-rst != 0'


gentoo output file

On gentoo, the output file sometimes goes where it wants to, instead of where I tell it with the -o option. That location is...

default location /var/lib/tcpdump/


reading tcpdump captures

It is a pain sometimes to transfer tcpdump to another device for viewing in Wireshark or other utilities. The same filters that apply to capturing can be applied to reading the tcpdump capture file.

# tcpdump -r <path to file>

showing the data portion of a packet

# tcpdump -X -r <path to file>

double X will also display the link level headers

-XX

show absolute (not relative) sequence numbers

-S or --absolute-tcp-sequence-numbers