Hur man övervakar nätverksanvändning för processer på Linux

By rik

Att ha tillgång till internet är en grundläggande del av vår vardag, men det kan vara intressant att veta vilka program på din Linux-dator som använder nätverket mest. Som tur är finns det flera verktyg i Linux som hjälper dig att övervaka nätverksanvändningen. Här presenterar vi några av de mest användbara:

MUO-VIDEO FÖR DAGEN

SCROLL FÖR ATT FORTSÄTTA MED INNEHÅLL

1. nethogs

nethogs är ett program som ger en realtidsvy över nätverksanvändningen, precis som htop eller top gör för CPU- och minnesanvändning. Den visar vilka processer som för tillfället använder nätverket.

Precis som top, htop och atop presenterar nethogs en översikt i helskärm som uppdateras regelbundet för att visa aktuella nätverksanslutningar uppdelade per process.

Installationen av nethogs är enkel och sker via din pakethanterare.

Till exempel, för Debian och Ubuntu:

 sudo apt install nethogs 

Och för Arch Linux:

 sudo pacman -S nethogs 

På Red Hat-baserade system:

 sudo dnf install nethogs 

För att köra nethogs behöver du root-privilegier:

 sudo nethogs 

Det går också att konfigurera så att vanliga användare kan köra nethogs genom att använda följande kommando:

 sudo setcap "cap_net_admin,cap_net_raw+pe" /sökväg/till/nethogs 

Du måste ersätta ”/sökväg/till/nethogs” med den absoluta sökvägen till nethogs. Du kan hitta sökvägen med kommandot:

 which nethogs 

2. lsof

Även om lsof primärt är ett verktyg för att lista öppna filer, kan det också visa öppna nätverksanslutningar. Med flaggan `-i` visas internetanslutningar kopplade till processer på systemet. I Linux är ju allt en fil, som man brukar säga.

För att se aktuella internetanslutningar, använd detta kommando:

 lsof -i 

lsof visar namnen på alla program med öppna internetanslutningar, deras PID, filbeskrivningar, typ av anslutning, storlek, protokoll och anslutningens formella filnamn.

Med alternativen `-i4` och `-i6` kan du specificera om du vill se anslutningar via IPv4 eller IPv6.

Chansen är stor att du redan har lsof installerat. Annars är det lätt att installera på de flesta Linux-distributioner.

På Debian och Ubuntu skriver du:

 sudo apt install lsof 

Och på Arch:

 sudo pacman -S lsof 

På Red Hat-baserade distributioner:

 sudo dnf install lsof 

3. netstat

netstat är ett kraftfullt verktyg för att se nätverksanslutningar på ditt system. Det visar inte vilka processer som är kopplade till anslutningarna som standard. Men precis som med lsof kan du visa detta med ett kommandoradsalternativ.

netstat ingår i paketet `net-tools`. Du kan installera det på de flesta Linux-distributioner med standardpakethanteraren.

Till exempel på Debian eller Ubuntu:

 sudo apt install net-tools 

På Arch Linux:

 sudo pacman -S net-tools 

För att installera netstat på Fedora, CentOS och RHEL, kör:

 sudo dnf install net-tools 

Du kan köra netstat från kommandoraden. Som standard visar det information som protokoll, adress och anslutningens tillstånd, men med alternativet `-p` läggs en kolumn till som visar process-ID och kommandonamn.

 netstat -p 

När du kör det kommer netstat att visa alla nätverksanslutningar och sedan avsluta. Med alternativet `-c` kan du se en kontinuerligt uppdaterad lista med anslutningar:

 netstat -pc 

Detta kan jämföras med att använda ett skärmorienterat program som nethogs, men fördelen med det här sättet är att du kan skicka utdata till andra program som grep eller en personsökare för att analysera det:

 netstat -p | grep 'systemd' 

För att se alla processer med nätverksanslutningar kan du behöva köra netstat som root:

 sudo netstat 

Nu kan du se vilka Linux-appar som använder din bandbredd

Linux, precis som många moderna operativsystem, är tätt integrerat med internet. Ibland kan det vara svårt att hålla koll på vilka processer som använder din bandbredd. Med hjälp av verktyg som nethogs, lsof och netstat kan du spåra vilka program som har öppna anslutningar.

Ibland kan program bete sig oväntat, även när det gäller nätverksanvändning. I Linux kan du enkelt avsluta alla processer som beter sig underligt.