How to monitor bandwidth usage per process?
You can use nethogs tool to monitor all your traffic on an interface.
Install it using
sudo apt-get install nethogs
Now run it using
sudo nethogs <interface name>
For example
sudo nethogs wlan0
For 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: r
shows 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.
Just a bit more comfort with netstat sudo watch -n1 netstat -tunap
It will refresh the data each 1s