Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
IFTOP(8)							      IFTOP(8)

       iftop - display bandwidth usage on an interface by host

       iftop -h	| [-nNpblBP] [-i interface] [-f	filter code] [-F net/mask] [-G

       iftop listens to	network	traffic	on a named interface, or on the	 first
       interface it can	find which looks like an external interface if none is
       specified, and displays a table of current bandwidth usage by pairs  of
       hosts.	iftop  must  be	run with sufficient permissions	to monitor all
       network traffic on the interface; see pcap(3) for more information, but
       on most systems this means that it must be run as root.

       By  default, iftop will look up the hostnames associated	with addresses
       it finds	in packets. This can cause substantial traffic of itself,  and
       may  result in a	confusing display. You may wish	to suppress display of
       DNS traffic by using filter code	such as	not port domain, or switch  it
       off  entirely, by using the -n option or	by pressing r when the program
       is running.

       By default, iftop counts	all IP packets that pass through  the  filter,
       and  the	 direction of the packet is determined according to the	direc-
       tion the	packet is moving across	the interface.	Using the -F option it
       is  possible  to	get iftop to show packets entering and leaving a given
       network.	 For example, iftop -F will analyse packets
       flowing in and out of the 10.* network.

       Some other filter ideas:

       not ether host ff:ff:ff:ff:ff:ff
	      Ignore ethernet broadcast	packets.

       port http and not host
	      Count  web  traffic  only, unless	it is being directed through a
	      local web	cache.

       icmp   How much bandwidth are users wasting trying to  figure  out  why
	      the network is slow?

       -h     Print a summary of usage.

       -n     Don't do hostname	lookups.

       -N     Do not resolve port number to service names

       -p     Run  in  promiscuous  mode,  so that traffic which does not pass
	      directly through the specified interface is also counted.

       -P     Turn on port display.

       -l     Display and count	datagrams addressed to or from link-local IPv6
	      addresses.  The default is not to	display	that address category.

       -b     Don't display bar	graphs of traffic.

       -m limit
	      Set the upper limit for the bandwidth  scale.   Specified	 as  a
	      number with a 'K', 'M' or	'G' suffix.

       -B     Display bandwidth	rates in bytes/sec rather than bits/sec.

       -i interface
	      Listen to	packets	on interface.

       -f filter code
	      Use  filter code to select the packets to	count. Only IP packets
	      are ever counted,	so the specified code is evaluated as  (filter
	      code) and	ip.

       -F net/mask
	      Specifies	 an  IPv4 network for traffic analysis.	 If specified,
	      iftop will only include packets flowing in  to  or  out  of  the
	      given  network,  and  packet direction is	determined relative to
	      the network boundary, rather than	to  the	 interface.   You  may
	      specify  mask  as	a dotted quad, such as /, or as a
	      single number specifying the number of bits set in the  netmask,
	      such as /24.

       -G net6/mask6
	      Specifies	 an  IPv6  network  for	traffic	analysis. The value of
	      mask6 can	be given as a prefix length or as a numerical  address
	      string for more compound bitmasking.

       -c config file
	      Specifies	 an  alternate	config	file.  If not specified, iftop
	      will use ~/.iftoprc if it	exists.	 See below for	a  description
	      of config	files

       -t text output mode
	      Use  text	interface without ncurses and print the	output to STD-

       When running, iftop uses	the whole screen to display network usage.  At
       the  top	 of the	display	is a logarithmic scale for the bar graph which
       gives a visual indication of traffic.

       The main	part of	the display lists, for each pair of hosts, the rate at
       which  data  has	been sent and received over the	preceding 2, 10	and 40
       second intervals. The direction of data flow is indicated by arrows, <=
       and =>. For instance,	=>	 1Kb  500b   100b
			<=			 2Mb	2Mb    2Mb

       shows,  on  the	first  line, traffic from to bar.exam-;	in the preceding 2 seconds, this averaged 1Kbit/s, around half
       that  amount over the preceding 10s, and	a fifth	of that	over the whole
       of the last 40s.	During each of those intervals,	the data sent  in  the
       other  direction	was about 2Mbit/s. On the actual display, part of each
       line is inverted	to give	a visual indication  of	 the  10s  average  of
       traffic.	 You might expect to see something like	this where host	foo is
       making repeated HTTP requests to	bar, which is sending data back	 which
       saturates a 2Mbit/s link.

       By  default,  the  pairs	 of hosts responsible for the most traffic (10
       second average) are displayed at	the top	of the list.

       At the bottom of	the display, various totals are	shown, including  peak
       traffic over the	last 40s, total	traffic	transferred (after filtering),
       and total transfer rates	averaged over 2s, 10s and 40s.

       By pressing s or	d while	iftop is running, all traffic for each	source
       or  destination	will be	aggregated together.  This is most useful when
       iftop is	run in promiscuous mode, or is run on a	gateway	machine.

       S or D toggle the display of source and destination ports respectively.
       p will toggle port display on/off.

       t  cycles  through the four line	display	modes; the default 2-line dis-
       play, with sent and received traffic on separate	lines,	and  3	1-line
       displays, with sent, received, or total traffic shown.

       By  default,  the  display is ordered according to the 10s average (2nd
       column).	 By pressing 1,	2 or 3 it is possible to sort by the 1st,  2nd
       or  3rd	column.	   By  pressing	 <  or > the display will be sorted by
       source or destination hostname respectively.

       l allows	you to enter a POSIX extended regular expression that will  be
       used  to	 filter	hostnames shown	in the display.	 This is a good	way to
       quickly limit what is shown on the display.  Note that this happens  at
       a  much later stage than	filter code, and does not affect what is actu-
       ally captured.  Display filters DO NOT affect the totals	at the	bottom
       of the screen.

       P will pause the	current	display.

       o  will freeze the current screen order.	 This has the side effect that
       traffic between hosts not shown on the screen at	the time will  not  be
       shown  at all, although it will be included in the totals at the	bottom
       of the screen.

       j and k will scroll the display of hosts.  This feature is most	useful
       when the	display	order is frozen	(see above).

       f  allows  you  to edit the filter code whilst iftop running.  This can
       lead to some unexpected behaviour.

       iftop can read its configuration	from a config file.  If	the -c	option
       is  not	specified,  iftop  will	attempt	to read	its configuration from
       ~/.iftoprc, if it exists.  Any  command	line  options  specified  will
       override	settings in the	config file.

       The config file consists	of one configuration directive per line.  Each
       directive is a name value pair, for example:

       interface: eth0

       sets the	network	interface.  The	following config directives  are  sup-

       interface: if
	      Sets the network interface to if.

       dns-resolution: (yes|no)
	      Controls reverse lookup of IP addresses.

       port-resolution:	(yes|no)
	      Controls conversion of port numbers to service names.

       filter-code: bpf
	      Sets the filter code to bpf.

       show-bars: (yes|no)
	      Controls display of bar graphs.

       promiscuous: (yes|no)
	      Puts the interface into promiscuous mode.

       port-display: (off|source-only|destination-only|on)
	      Controls display of port numbers.

       link-local: (yes|no)
	      Determines displaying of link-local IPv6 addresses.

       hide-source: (yes|no)
	      Hides source host	names.

       hide-destination: (yes|no)
	      Hides destination	host names.

       use-bytes: (yes|no)
	      Use bytes	for bandwidth display, rather than bits.

       sort: (2s|10s|40s|source|destination)
	      Sets which column	is used	to sort	the display.

       line-display: (two-line|one-line-both|one-line-sent|one-line-received)
	      Controls the appearance of each item in the display.

       show-totals: (yes|no)
	      Shows cumulative total for each item.

       log-scale: (yes|no)
	      Use a logarithmic	scale for bar graphs.

       max-bandwidth: bw
	      Fixes  the  maximum  for	the bar	graph scale to bw, e.g.	"10M".
	      Note that	the value has to always	be in bits, regardless if  the
	      option to	display	in bytes has been chosen.

       net-filter: net/mask
	      Defines an IP network boundary for determining packet direction.

       net-filter6: net6/mask6
	      Defines an IPv6 network boundary for determining	packet	direc-

       screen-filter: regexp
	      Sets a regular expression	to filter screen output.

QUIRKS (aka they're features, not bugs)
       There are some circumstances in which iftop may not do what you expect.
       In most cases what it is	doing is logical, and we believe it is correct
       behaviour,  although  I'm happy to hear reasoned	arguments for alterna-
       tive behaviour.

       Totals don't add	up

       There are several reasons why the totals	may not	appear to add up.  The
       most  obvious  is  having a screen filter in effect, or screen ordering
       frozen.	In this	case some captured information is not being  shown  to
       you, but	is included in the totals.

       A  more subtle explanation comes	about when running in promiscuous mode
       without specifying a -F option.	In this	case there is no easy  way  to
       assign  the  direction  of  traffic between two third parties.  For the
       purposes	of the main display this is done in an arbitrary  fashion  (by
       ordering	 of  IP	 addresses),  but  for	the sake of totals all traffic
       between other hosts is accounted	as incoming, because that's what it is
       from  the point of view of your interface.  The -F option allows	you to
       specify an arbitrary network boundary,  and  to	show  traffic  flowing
       across it.

       Peak totals don't add up

       Again,  this is a feature.  The peak sent and peak received didn't nec-
       essarily	happen at the same time.  The peak total  is  the  maximum  of
       sent plus received in each captured time	division.

       Changing	the filter code	doesn't	seem to	work

       Give  it	 time.	Changing the filter code affects what is captured from
       the time	that you entered it, but most of what is  on  the  display  is
       based  on  some	fraction  of  the last 40s window of capturing.	 After
       changing	the filter there may be	entries	on the display that are	disal-
       lowed by	the current filter for up to 40s.  DISPLAY FILTERING has imme-
       diate effect and	does not affect	what is	captured.

	      Configuration file for iftop.

       tcpdump(8), pcap(3), driftnet(1).

       Paul Warren <>

       $Id: iftop.8,v 1.31 2014/01/05 17:22:39 pdw Exp $

       This program is free software; you can redistribute it and/or modify it
       under  the  terms of the	GNU General Public License as published	by the
       Free Software Foundation; either	version	2 of the License, or (at  your
       option) any later version.

       This  program  is  distributed  in the hope that	it will	be useful, but
       WITHOUT ANY  WARRANTY;  without	even  the  implied  warranty  of  MER-
       Public License for more details.

       You should have received	a copy of the GNU General Public License along
       with this program; if not, write	to the Free Software Foundation, Inc.,
       51 Franklin Street, Fifth Floor,	Boston,	MA 02110-1301 USA.



Want to link to this manual page? Use this URL:

home | help