Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Dec 2005 01:13:32 -0500
From:      Chuck Swiger <cswiger@mac.com>
To:        Parv <parv@pair.com>
Cc:        f-q <freebsd-questions@freebsd.org>
Subject:   Re: Getting the network traffic amount since the interface went up
Message-ID:  <439FB80C.4050905@mac.com>
In-Reply-To: <20051214000234.GA28630@holestein.holy.cow>
References:  <20051214000234.GA28630@holestein.holy.cow>

next in thread | previous in thread | raw e-mail | index | archive | help
Parv wrote:
> I am interested to know the total amount of data passed through a
> network interface (em0 in my case) since the interface went up.  So
> far, i have seen that pload, nload, & "netstat -b -I" report the
> amount since the operating system has been up, not since the new
> ethernet connection has been (re)established.
> 
> Is there a way to find out the amount of traffic (in & out) since a
> network interface has been up (not since the OS has been up)?

There are lots of solutions to this problem, it kinda depends on what you're
trying to do.  You might set up an IPFW rule which matches just the traffic you
care about, and look at "ipfw -a l".  You can zero the counters at will if you
like, too.  From the ipfw manpage:

     Per-flow queueing can be useful for a variety of purposes.  A very simple
     one is counting traffic:

           ipfw add pipe 1 tcp from any to any
           ipfw add pipe 1 udp from any to any
           ipfw add pipe 1 ip from any to any
           ipfw pipe 1 config mask all

     The above set of rules will create queues (and collect statistics) for
     all traffic.  Because the pipes have no limitations, the only effect is
     collecting statistics.  Note that we need 3 rules, not just the last one,
     because when ipfw tries to match IP packets it will not consider ports,
     so we would not see connections on separate ports as different ones.

-- 
-Chuck



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?439FB80C.4050905>