Det finns många anledningar till varför du vill övervaka nätverksaktiviteten på ditt Linuxsystem. Du kanske felsöker ett nätverksproblem, du kanske vill kontrollera att det inte finns några skadliga program som skapar misstänkt nätverksaktivitet, eller så vill du helt enkelt veta om det är några processer som ringer hem. Oavsett orsaken finns här några metoder för att se vilka processer på ditt system som har nätverksaktivitet och vem de kommunicerar med.
I den här handledningen lär du dig:
- Hur man övervakar nätverksanslutningar och lyssnande tjänster med netstat
- Hur man övervakar nätverksanslutningar och lyssnande tjänster med lsof
- Hur man övervakar nätverksanslutningar och lyssnande tjänster med ifconfig
- Vilka verktyg du kan använda för att undersöka de data som skickas över nätverket

Mjukvarukrav och konventioner som används
Kategori | Krav, Konventioner eller programvaruversion som används |
---|---|
System | Distributionsoberoende |
Programvara | netstat, lsof, ifconfig, wireshark, tcpdump |
Andra | Priviligierad åtkomst till ditt Linuxsystem som root eller via kommandot sudo . |
Konventioner | # – kräver att givna Linuxkommandon exekveras med rootprivilegier, antingen direkt som rootanvändare eller med hjälp av sudo -kommandot$ – kräver att givna Linuxkommandon exekveras som en vanlig icke-priviligierad användare |
Netstat
Netstat
är ett kraftfullt verktyg som kan skriva ut nätverksförbindelser, routningstabeller, gränssnittsstatistik, maskeringsanslutningar och multicastmedlemskap. Vi kommer att använda det för att utföra det förstnämnda.
Installation av Netstat
På Debian och Debianbaserade system som Ubuntu, använd apt.
# apt install net-tools
På Red Hat Enterprise Linux och Red Hat-baserade system, använd yum,
# yum install net-tools
På Arch-baserade system, använd pacman.
# pacman -S net-tools
UAF Geophysical Institute, söker en erfaren Linux Systems Analyst för att gå med i deras team av analytiker och ingenjörer inom forskning om cyberinfrastruktur. PLATS: Fairbanks, Alaska, USA
ANSÖK NU
I följande exempel använder vi en färsk installation av RHEL 8 som körs i VirtualBox med gästtillägg installerade
Visa lyssnande processer
Först ska vi visa de processer som lyssnar efter anslutningar. För att göra det så ange följande kommando:
$ sudo netstat -tulpen
I det här kommandot visar t
TCP
anslutningar, u
visar UDP-anslutningar, l
visar endast lyssnande sockets, p
visar det program som anslutningen tillhör,e
visar utökad information och n
representerar adresser, användare och portar numeriskt.

När man tänker på den klient-server-modell som de flesta nätverksmjukvara bygger på kan lyssnande processer ses som mjukvara som är i ”server”-läge. Det finns inget överraskande i utmatningen med tanke på vår inställning. Detta är alla processer som du skulle förvänta dig att lyssna på nätverksanslutningar på en nyinstallerad RHEL 8 som körs iVirtualBox
.
För varje lyssnande process kan du se vilket protokoll som används, lokal adress och port som den lyssnar på, användaren som den körs under och PID/Programnamn. Det finns en viktig skillnad att notera här. Förtcp4
/udp4
-anslutningar (anges helt enkelt somtcp
ochudp
) därLocal Address
anges som0.0.0.0
lyssnar processen på anslutningar från alla maskiner som kan ansluta till den via nätverket, medan när den anges som127.0.0.1
lyssnar den bara på anslutningar på localhost (den maskin som den körs på eller sig själv) och kan inte anslutas till av andra datorer i nätverket. Samma distinktion gäller förtcp6
/udp6
när man jämför enLocal Address
av::
(nätverk som vetter mot) och::1
(endast localhost).
Se alla nätverksanslutningar
Nu ska vi ta en titt på alla aktuella nätverksanslutningar. För att göra detta anger du följande kommando, som liknar det föregående förutom att vi använder -a
för att visa alla sockets istället för -l
för att bara visa lyssnande sockets.
$ sudo netstat -atupen
Förutom att visa oss vilken mjukvara vi har som lyssnar på anslutningar som ”servrar” visar det här kommandot oss också för närvarande upprättade anslutningar till den mjukvaran och alla upprättade nätverksanslutningar som vi har med hjälp av mjukvara som agerar som ”klient”, till exempel en webbläsare.

I skärmdumpen ser du 2 anslutningar i statusenESTABLISHED
. Återigen finns det inga överraskningar här. En av dem tillhör NetworkManager och fungerar som en DHCP-klient för att aktivera nätverk från gateway-servern (i det här fallet värdmaskinen). Den andra är en SSH-anslutning till maskinen som vi gjorde efter att ha port forwardat ssh-tjänsten med VirtualBox. Om vi hade sett något oväntat här så kan det vara skäl till ytterligare undersökning.
Visa etablerade anslutningar
Du kan hamna i en situation där du bara vill visa ESTABLISHED
-anslutningarna. Detta är lika enkelt som att pipa utdata från netstat till grep så här:
$ sudo netstat -atupen | grep ESTABLISHED

Vi skrev in ovanstående kommando efter att ha navigerat till wikipedia.com i firefox och skärmdumpen fångar de anslutningar som etablerades av firefox när man nådde webbplatsen. Som du kan se är det fyra servrar som firefox anslöt till: 91.198.174.192
, 172.217.23.100
, 216.58.215.67
och 104.111.215.142
. För att se vem dessa servrar tillhör kan vi fråga efter IP-adresserna med whois på följande sätt:
$ whois 91.198.174.192| less
Om vi gör det för var och en av dem visar det sig att de tillhör Wikimedia, Google, Google respektive Akamai. Detta är logiskt med tanke på att Wikimedia äger och är värd för wikipedia och att det är mycket vanligt att webbplatser laddar resurser som finns på servrar som ägs av Google och Akamai. En undersökning av källkoden för wikipedias hemsida visar att den laddar app-badge för Google Play Store från google.com och app-badge för Apple AppStore från apple.com.
Navigering till urls för dessa två app-badges var för sig och utfärdande av ovanstående netstat-kommando verifierar att de finns på servrar som ägs av Google respektive Akamai.
Om detta väckte ditt intresse för netstat
så har vi en artikel du kan läsa för att lära dig mer om hur man använder netstat-kommandot
ss
Kommandot netstat
har länge varit en favorit bland sysadmins, men det har nyligen ersatts av ss
-kommandot som skryter med att det är snabbare, enklare och mer lättläst än netstat
. Låt oss se hur man kan utföra samma åtgärder som utförts ovan med hjälp av ss
. Ss
har också ett -e
-alternativ för att visa utökad information, men det alternativet har utelämnats från exemplen nedan eftersom det producerar ytterligare information som kan resultera i mindre läsbar utdata.
Visa lyssnande processer
För att visa alla lyssnande processer anger du följande.
$ sudo ss -tlunp
I det här kommandot visar t
TCP
anslutningar, l
visar endast lyssnande sockets, u
visar UDP-anslutningar, n
representerar adresser, användare och portar numeriskt och p
visar det program som anslutningen tillhör.
Visa alla nätverksanslutningar
För att visa alla nätverksanslutningar anger du följande, där a
ersätter l
och visar alla nätverksuttag, inte bara lyssnande uttag.
$ sudo ss -taunp
Visa etablerade anslutningar
Om -a
eller -l
inte är inkluderade så visar ss
endast etablerade anslutningar. För att endast visa etablerade anslutningar anger du följande:
$ sudo ss -tunp
lsof
Om inte netstat
och ss
var tillräckliga för dig, presenterar vi lsof
. Lsof
används för att lista öppna filer. GNU/Linux ärvde UNIX:s konstruktionsprincip att allt är en fil; detta inkluderar nätverksanslutningar. Därför kan lsof
användas för att visa nätverksaktivitet på ett sätt som liknar de tidigare nämnda kommandona.
Se alla nätverksanslutningar
För att visa alla nätverksanslutningar anger du följande.
$ sudo lsof -nP -i
I detta kommando representerar n
adresserna numeriskt, P
representerar portarna numeriskt och i
undertrycker listningen av alla öppna filer som inte betraktas som nätverksfiler.
Visa etablerade anslutningar
För att visa endast etablerade anslutningar anger du följande där de ytterligare växlarna listar alla etablerade TCP
anslutningar.
$ sudo lsof -nP -iTCP -sTCP:ESTABLISHED
Visa lyssnande processer
För att visa lyssnande processer med hjälp av lsof
anger du följande.
$ sudo lsof -nP -iTCP -sTCP:LISTEN
Detta kommer att missa alla processer som lyssnar över UDP, så det kan vara önskvärt att i stället ange följande för att inkludera även dessa.
$ sudo lsof -nP -i | grep 'LISTEN\|UDP'
Övervakning av data som skickas över nätverket
Vi har sett hur netstat
, ss
och ifconfig
kan användas för att övervaka vilka nätverksanslutningar som görs och till vem, men det är ofta önskvärt att se exakt vilken data som skickas över nätverket. För att uppnå detta mål behöver vi program som kan sniffa paket. Två program som specialiserar sig på detta område är tcpdump
och wireshark
.
Vi har tidigare skrivit guider om hur man installerar wireshark på RHEL 8, The Basics of network protocol analyzer Wireshark On Linux, Filtering Packets In Wireshark on Kali Linux, och Network Monitoring
avsnittet Linux system och hårdvaruövervakning effektiviserat innehåller en trevlig introduktion till tcpdump
.