Hoe netstat te gebruiken in GNU / Linux
- Categorie: Linux
Netstat is een zeer krachtig hulpprogramma dat een lijst geeft van alle TCP- en UDP-verbindingen, evenals Unix-socketverbindingen die momenteel luisteren naar verbindingen en momenteel verbonden zijn. Hoewel veel thuisgebruikers zich hier niet per se zorgen over hoeven te maken, zullen online gamers, of iemand die van plan is om in de toekomst een server te hosten, op een gegeven moment zeker te maken krijgen met poorten.
Netstat is ook handig voor beveiliging en privacy, bijvoorbeeld om erachter te komen welke programma's met internet 'praten'.
Het gebruik van netstat kan een extreem eenvoudig proces zijn, of het kan erg ingewikkeld en zwaar worden, afhankelijk van het gebruik; dus vandaag zullen we enkele van de meest voorkomende toepassingen van Netstat bekijken.
Zoals beloofd (in mijn artikel ' Hoe vind ik mijn netwerkinformatie in Linux ? ') Ik ga je kennis laten maken met het netstat-commando. Deze opdracht is een erg handig hulpmiddel voor het ontdekken van netwerkinformatie zoals routeringstabellen, netwerkverbindingen, interfacestatistieken, maskeradeverbindingen en multicast-lidmaatschappen. Maar het is niet zo eenvoudig te gebruiken als sommige van de andere 'discovery'-tools (zoals ifconfig). Met netstat moet je echt weten wat je zoekt en hoe je het kunt vinden. Dit artikel zal je helpen om precies dat te begrijpen.
Installatie?
Gelukkig zou uw distributie moeten komen met de netstat commando vooraf geïnstalleerd. Om dit te controleren, opent u een terminalvenster (daar zult u hoe dan ook netstat gebruiken) en geeft u de opdracht uit welke netstat . Deze opdracht zou iets als / bin / netstat . Dat zal u vertellen dat de tool is geïnstalleerd en waar het uitvoerbare bestand is.
Netstat Basics
Het standaard netstat-commando ziet er als volgt uit:
netstat ARGUMENTOPTIES
Waar ARGUMENT het type adresfamilie is waarover u informatie wilt en OPTIONS de optionele optie (s) is die het type informatie specificeert dat u terugkrijgt.
Omdat netstat zoveel verschillende opties biedt, is het misschien het beste als ik eerst enkele van de meer bruikbare opties opsom.
- naar : Toont de status van alle sockets en routeringstabelitems.
- c : Informatie continu weergeven.
- d : Toont de status van alle interfaces die DHCP gebruiken.
- is : Uitgebreide informatie weergeven.
- g : De informatie over het lidmaatschap van de multicastgroep weergeven voor zowel IPv4 als IPv6.
- ik : Een tabel weergeven met alle netwerkinferenties.
- l : Beperk statistieken tot een gedefinieerde interface.
- M. : Multicast-routeringstabellen weergeven.
- n : Toont netwerkadressen als cijfers in plaats van de standaardsymbolen.
- p : Adresresolutietabellen weergeven.
- P. : Beperk statistieken tot een gedefinieerd protocol.
- r : Toon alle routeringstabellen.
- t : TCP-verbindingen weergeven.
- u : UDP-verbindingen weergeven.
- v : Gebruik de uitgebreide modus voor uitvoer.
Laten we dus eens kijken hoe deze samen kunnen worden gebruikt.
netstat
Op zichzelf (geen opties) drukt deze opdracht algemene statistieken af van de host waarmee u momenteel bent verbonden.
netstat -an
Deze opdracht geeft alle verbindingen met de host weer, inclusief bron- en bestemmingsadressen en poorten, en geeft ze weer als cijfers.
netstat -rn
Met deze opdracht wordt de routeringstabel voor de host in numerieke vorm weergegeven.
netstat -r
Met deze opdracht wordt uw routeringstabel voor uw host weergegeven.
netstat -natp
Met deze opdracht worden actieve TCP-verbindingen in numerieke vorm weergegeven.
netstat -t - luisteren
Dit toont je alle tcp-poorten waarop je host luistert.
netstat --statistieken
Deze opdracht geeft verschillende statistieken weer voor de interfaces van uw host. Merk op dat dit commando VEEL statistieken zal weergeven.
Zoals u kunt zien, geeft dit commando nogal wat informatie weer. Bovendien moet u deze opdracht wellicht door de opdracht less leiden om het gemakkelijker te kunnen zien. Dat volledige commando zou eruitzien als netstat --statistics | minder. Als u het op die manier gebruikt, kunt u uw pijltjestoetsen gebruiken om op en neer door de uitvoer te bladeren.
Gebruikstips voor Netstat
Een van de meest basale en gebruikelijke manieren om netstat te gebruiken, is om te controleren naar welke poorten luisteren
- netstat -l
Dat geeft zoiets als dit op mijn pas geïnstalleerde Antergos-systeem
Of, als u uw zoekopdracht wat meer wilt concentreren, kunt u een andere optie toevoegen om specifiek te sorteren voor verschillende soorten verbindingen
- netstat -lt # voor TCP
- netstat -lu # voor UDP
- netstat -lx # voor Unix
Of u kunt naar het tegenovergestelde uiteinde van het spectrum gaan en alle verbindingen vermelden
- netstat -a
Een andere optie die handig kan zijn om in gedachten te houden, is het gebruik van de ‘n’ optie. Als je bijvoorbeeld netstat -n of netstat -ltn gebruikt, zullen niet langer alle hostnamen proberen te worden omgezet en worden alleen IP-adressen getoond, zoals in het onderstaande voorbeeld.
Zoals je kunt zien, werd localhost in naam omgezet naar zijn numerieke waarde na gebruik van de ‘n’ optie
Een andere manier om netstat te gebruiken is netstat -ie, de ‘i’ voor interfaces, en de ‘e’ voor ‘uitgebreid’, wat ons een beter leesbare output zal geven.
netstat -ie # Dit toont ons een lijst met netwerkinterfaces en informatie over elk apparaat.
Geavanceerde Netstat-tips
Wat we willen doen is netstat vertellen om ons uitvoer te geven voor specifieke applicaties die luisteren naar tcp-verbindingen. Om dit te doen geven we het commando uit:
- netstat --tcp --listening --programs
De uitvoer voor deze opdracht zou er ongeveer zo uitzien:
Proto Recv-Q Send-Q Lokaal adres Buitenlands adres Stat PID / programma
tcp 0 0 *: ssh *: * LUISTER 25469 / sshd
tcp 0 0 *: httpd *: * LUISTER 26754 / httpd
tcp 0 0 localhost: ipp *: * LISTEN -
Nu kunt u wat nuttige informatie zien. In de bovenstaande uitvoer kun je zien dat zowel sshd als httpd luisteren naar inkomende verbindingen. Het bovenstaande is slechts een fragment van hoe de uitvoer eruit kan zien. Wat erg handig is aan dit commando, is dat het je laat zien of er een commando of lokaal adres luistert naar inkomende verbindingen die niet zouden moeten luisteren. Als je een applicatie vindt die niet zou moeten luisteren, dood hem dan voor de zekerheid.
Route
Netstat is in staat om de kernel-routingtabel van uw machine snel af te drukken met het commando:
netstat -r
De uitvoer van deze opdracht ziet er als volgt uit:
Kernel IP-routeringstabel
Destination Gateway Genmask Flags MSS-venster irtt Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
standaard 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Statistieken
Dit is een van de handiger van de netstat-tools. Hiermee kun je voor elk protocol precies de statica achterhalen. De basisopdrachtstructuur is:
netstat --statistieken
die u veel meer informatie geeft dan u wilt. Stel dat u alleen statistieken over het TCP-protocol wilt zien. Hiervoor kunt u het commando geven:
netstat -t --statistieken
De uitvoer van de bovenstaande opdracht bevat informatie zoals:
Tcp:
4343 actieve verbindingen openingen
8 passieve aansluitopeningen
5 mislukte verbindingspogingen
178 verbinding gereset ontvangen
6 verbindingen tot stand gebracht
59075 segmenten ontvangen
60033 segmenten worden verzonden
76 segmenten opnieuw verzonden
0 slechte segmenten ontvangen.
303 resets verzonden
Of u kunt ook informatie over UDP krijgen met de opdracht:
netstat -u --statistieken
Dat zou u vergelijkbare output geven voor het UDP-protocol.
Wees creatief
Wat als u alle unieke IP-adressen wilt zien die met een server zijn verbonden? U kunt dat doen met netstat (en de hulp van een paar andere tools) zoals:
netstat -nat | awk '{print $ 5}' | knippen -d: -f1 | sed -e '/ ^ $ / d | uniq
De uitvoer van het bovenstaande commando hangt af van hoeveel verkeer uw machine / server ontvangt. Maar het bevat alle unieke IP-adressen die proberen verbinding te maken met uw server.
Hoe zit het met het controleren om te zien of uw server wordt aangevallen door DOS? U kunt dat als volgt met netstat doen:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | knippen -d: -f1 | sorteren | uniq -c | sorteren -n
De bovenstaande opdracht geeft de IP-adressen weer die het hoogste aantal verbindingen met uw server aanvragen. Als u een aantal ziet dat veel hoger is dan het zou moeten zijn, bevindt u zich waarschijnlijk onder een Denial of Service-aanval.
Laatste gedachten
Netstat is een van die tools waarvan je nooit denkt dat je ze nodig zult hebben, totdat je het ineens wel doet; en het is altijd goed om te weten hoe je het moet gebruiken voor het geval de behoefte zich ooit voordoet, tenminste op een basisniveau. Voor meer informatie over het gebruik van het netstat commando en zijn opties, bekijk de man-pagina's door te typen man netstat .
Nu jij: Wat is uw favoriete hulpprogramma voor het controleren van netwerkinformatie, en waarom? Laat het ons weten in de comments!
Gerelateerde artikelen
- Hoe vind ik mijn netwerkinformatie - in Linux?
- Basisprincipes van netwerkproblemen oplossen: de opdracht Ipconfig
- CSF Firewall-front-end instellen voor IPTables
- Enkele handige, maar obscure Linux-beheertools
- Los netwerkproblemen op met Gnome's Nettools