How to monitor bandwidth usage per process? [duplicate]
I am using Ubuntu 14.04. My internet connection is pretty slow (512 kbps). Sometimes I see that I have no software running which should download anything from the internet, but the system monitor still shows that some download is going on. So I think some hidden software are causing this. Is there a way I can monitor every software that is using internet?
47 Answers
You can use nethogs tool to monitor all your traffic on an interface.
Install it using
sudo apt-get install nethogsNow run it using
sudo nethogs <interface name>For example
sudo nethogs wlan0For more detail type man nethogs after installing.
I prefer sudo netstat -tunap
vinny@vinny-Bonobo-Extreme:~$ sudo netstat -tunap
[sudo] password for vinny:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8200 0.0.0.0:* LISTEN 1160/minidlnad
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 927/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2543/cupsd
tcp 0 0 192.168.2.10:58491 198.252.206.149:443 ESTABLISHED 30401/firefox
tcp 0 0 192.168.2.10:39824 173.194.219.189:443 ESTABLISHED 30401/firefox
tcp 0 0 192.168.2.10:58569 198.252.206.149:443 ESTABLISHED 30401/firefox
tcp 0 0 192.168.2.10:59283 173.194.219.18:443 ESTABLISHED 30401/firefox
tcp6 0 0 ::1:631 :::* LISTEN 2543/cupsd
tcp6 1 0 ::1:60390 ::1:631 CLOSE_WAIT 863/cups-browsed
tcp6 1 0 ::1:34718 ::1:631 CLOSE_WAIT 1469/plasmashell
tcp6 1 0 ::1:60391 ::1:631 CLOSE_WAIT 863/cups-browsed
udp 0 0 0.0.0.0:1900 0.0.0.0:* 1160/minidlnad
udp 0 0 0.0.0.0:10097 0.0.0.0:* 26759/dhclient
udp 0 0 0.0.0.0:5353 0.0.0.0:* 759/avahi-daemon: r
udp 0 0 0.0.0.0:39609 0.0.0.0:* 759/avahi-daemon: r
udp 0 0 192.168.2.10:57168 0.0.0.0:* 1160/minidlnad
udp 0 0 127.0.1.1:53 0.0.0.0:* 927/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 26759/dhclient
udp 0 0 0.0.0.0:631 0.0.0.0:* 863/cups-browsed
udp6 0 0 :::5353 :::* 759/avahi-daemon: r
udp6 0 0 :::13818 :::* 26759/dhclient
udp6 0 0 :::39404 :::* 759/avahi-daemon: rshows even system proses that is using the network and the name of them.
but not really a monitor as you half to keep running it to see changing output.
3Just a bit more comfort with netstat sudo watch -n1 netstat -tunap
It will refresh the data each 1s
2The iptraf utility is another way to monitor the traffic, provided by the iptraf package.
sudo apt-get install iptraf installs it.
iptraf is available in Red Hat Linux also; run yum install iptraf as root to install it.
Terminal tool: netstat -tnp . -n option is to show numerical address (ip) to which connection is established, -p is program which has established that connection, and -t lists all tcplimits to tcp connections. Alternativelly, you could use netstat -a > networkscan.txt to output everything into a txt file
Socket Statistics, ss
ss is the modern alternative to netstat.
sudo apt install iproute2 # InstallUsage example:
watch -n1 sudo ss -ntp # Do not try to resolve service names. TCP. View processes There is a more modern alternative to ss by now :)
1