Beginner's Guide to Mastering the Netstat Command on Linux
Het netstat
commando is een essentieel hulpmiddel voor netwerkbeheer. Het geeft informatie over het Linux-netwerksubsysteem inclusief gegevens over open netwerkverbindingen, routeringstabellen en statistieken over de geïnstalleerde netwerkinterfaces.
De eenvoudigste netstat-opdracht is alleen om de tool zonder enige parameter uit te voeren:
netstat
Dit toont een lijst met de huidige open verbindingen op uw machine. De resultaten kunnen echter een beetje log zijn. Het is daarom beter om de verbindingen per type op te splitsen. Om een lijst te maken van alle open TCP-verbindingen, gebruikt u:
netstat -t
Het resultaat is een lijst met de huidige verbindingen die met uw computer zijn gemaakt. In het bovenstaande voorbeeld kunt u zien dat op mijn testmachine een SSH-server wordt uitgevoerd en dat er SSH-verbindingen zijn.
Let op de regel met de tekst " Actieve internetverbinding (zonder servers) ". Het laatste deel betekent dat netstat geen lijst bevatte van servers die op uw computer worden uitgevoerd; met andere woorden, het vermeldde niet die programma's die wachten op TCP-verbindingen maar die op dit moment nog niet zijn vastgesteld.
Voor een lijst met actieve TCP-verbindingen en een lijst met poorten die naar TCP-verbindingen luisteren, voegt u de markering -a
:
netstat -at
De -a
staat voor ALL en voegt de set luisterpoorten toe. Als u in de lijst kijkt, kunt u zien dat mijn Linux-computer ook wacht op SSH-verbindingen via IPv6.
Dezelfde informatie kan ook voor UDP worden gegenereerd met behulp van:
netstat -au
Het tegenovergestelde van de -a
vlag is de -l
vlag waardoor de netstat de luisterpoorten toont maar de actieve verbindingen weglaat.
Voor een lijst met de processen die open verbindingen hebben of die wachten op verbindingen, gebruikt u de vlag -p
:
sudo netstat -atp
U kunt -p
met zowel -t
voor TCP of -u
voor UDP. Merk ook op dat je de opdracht moet uitvoeren met sudo
. De vlag -p
maakt het interpreteren van de verbindingslijst veel eenvoudiger. Uit het bovenstaande voorbeeld kunt u zien dat niet alleen de SSH-server wordt uitgevoerd (sshd), maar dat de machine een CUPS-server heeft die samen met de DNSMasq-miniserver wordt uitgevoerd.
Als u wilt controleren of een bepaalde service actief is, kunt u netstat gebruiken in combinatie met de grep
opdracht. In mijn testopstelling heb ik bijvoorbeeld een e-mailserver (postfix) geïnstalleerd. Om te controleren of het actief is, kan ik het volgende gebruiken:
sudo netstat -ltp | grep smtp
De vlag -ltp
geeft netstat de opdracht om alleen de TCP-servers (dwz die processen die naar verbindingen luisteren) te vermelden en de opdracht grep
filtert de uitvoer om alleen de regels met de tekenreeks "smtp" weer te geven. Als gevolg hiervan kunnen we zien dat het proces " master "(dit is de naam van het hoofdproces van Postfix) luistert naar IPv4 en IPv6 voor inkomende SMTP-verbindingen.
netstat kan vrij veel statistische informatie over het netwerksubsysteem genereren. Probeer de volgende opdrachten:
netstat -i
voor gebruiksinformatie over de netwerkinterfacesnetstat -ie
om uitgebreide gebruiksinformatie te krijgennetstat -s
voor samenvattende statistieken voor elk van de netwerkprotocollen (bijv. TCP, UDP, ICMP, enzovoort)
Om de huidige kernelrouteringstabel te krijgen, gebruik:
netstat -rn
Het lezen van routeringstabellen heeft een geoefend oog nodig, maar in essentie is het bovenstaande voorbeeld dat de standaardroute (0.0.0.0) voor alle pakketten anders dan die voor de lokale machine wordt verzonden naar 192.168.1.254, wat in mijn testopstelling de standaardgateway en mijn internetmodem / router.
U kunt de opdracht uitvoeren zonder de vlag -n
, wat betekent dat netstat de adressen probeert op te lossen.
De netstat man pagina heeft een volledige lijst met alle beschikbare opties, je kunt het lezen met behulp van:
man netstat
Als u problemen ondervindt met de bovenstaande voorbeelden, kunt u een vraag stellen in de onderstaande opmerkingen.