Hur man använder netstat i GNU / Linux

Netstat är ett mycket kraftfullt verktyg som kommer att lista alla TCP- och UDP-anslutningar, såväl som unix-anslutningar som för närvarande lyssnar på anslutningar såväl som för närvarande anslutna. Även om många hemmabrukare inte nödvändigtvis behöver oroa sig för detta, måste onlinespelare, eller någon som tänker vara värd för någon slags server i framtiden, säkert vid någon tidpunkt behöva hantera portar.

Netstat är också användbart för säkerhet och integritet, till exempel för att ta reda på vilka program som 'pratar' med Internet.

Att använda netstat kan vara en extremt enkel process, eller det kan bli mycket komplicerat och tungt, beroende på användning. så idag kommer vi att titta på några av de vanligare användningarna för Netstat.

Som lovat (i min artikel ' Hur hittar jag min nätverksinformation i Linux ? ') Jag kommer att presentera dig för kommandot netstat. Detta kommando är ett mycket användbart verktyg för att upptäcka nätverksinformation som routingtabeller, nätverksanslutningar, gränssnittsstatistik, maskeradanslutningar och multicast-medlemskap. Men det är inte lika enkelt att använda som några av de andra 'upptäckts' -verktygen (till exempel ifconfig). Med netstat behöver du verkligen veta vad du letar efter och hur du hittar det. Den här artikeln hjälper dig att förstå just det.

Installation?

Lyckligtvis bör din distribution komma med netstat kommando förinstallerat. För att kontrollera detta öppnar du ett terminalfönster (det är där du ändå kommer att använda netstat) och utfärda kommandot vilken netstat . Detta kommando bör returnera något liknande / Bin / netstat . Det säger att verktyget är installerat och var den körbara finns.

Grunderna i Netstat

Det grundläggande netstat-kommandot ser ut som:

netstat ARGUMENTALTERNATIV

Där ARGUMENT är den typ av adressfamilj du vill ha information om och OPTIONS är det valfria alternativ som anger vilken typ av information du får tillbaka.

Eftersom netstat erbjuder en sådan mängd olika alternativ, kan det vara bäst om jag först listar några av de mer användbara alternativen.

  • till : Visar status för alla uttag och rutningstabellposter.
  • c : Visa information kontinuerligt.
  • d : Visa tillståndet för alla gränssnitt som använder DHCP.
  • är : Visa utökad information.
  • g : Visa information om multicast-gruppmedlemskap för både IPv4 och IPv6.
  • jag : Visa en tabell över alla nätverksinferfaces.
  • l : Begränsa statistik till ett definierat gränssnitt.
  • M : Visa routningstabeller för multicast.
  • n : Visar nätverksadresser som nummer istället för standardsymbolerna.
  • p : Visa adressupplösningstabeller.
  • P : Begränsa statistik till ett definierat protokoll.
  • r : Visa alla routingtabeller.
  • t : Visa TCP-anslutningar.
  • u : Visa UDP-anslutningar.
  • v : Använd verbalt läge för utgång.

Så låt oss ta en titt och se hur dessa kan användas tillsammans.

netstat

I sig själv (inga alternativ) skriver detta kommando generisk statistik över värden som du för närvarande är ansluten till.

netstat -an

Detta kommando visar alla anslutningar till värden, inklusive käll- och destinationsadresser och portar, och visar dem som nummer.

netstat -rn

Detta kommando visar routingtabellen för värden i numerisk form.

netstat -r

Detta kommando visar din routingtabell för din värd.

netstat -natp

Detta kommando visar aktiva TCP-anslutningar i numerisk form.

netstat -t - lyssna

Detta visar alla tcp-portar som du är värd att lyssna på.

netstat - statistik

Detta kommando visar olika statistik för värdens gränssnitt. Observera att det här kommandot visar mycket statistik.

Som ni ser kommer detta kommando att visa en hel del information. Dessutom kan du behöva leda det här kommandot genom mindre kommando för att se det lättare. Det fulla kommandot skulle se ut som netstat - statistik | mindre. Om du använder det på så sätt kan du använda piltangenterna för att bläddra uppåt och nedåt genom ouput.

Användningstips för Netstat

Ett av de mest grundläggande och vanliga sätten att använda netstat är att kontrollera för vilka portar som lyssnar

  • netstat -l

Vilket ger något liknande på mitt nyinstallerade Antergos-system

netstat -l

Eller om du vill fokusera din sökning lite mer kan du lägga till ett annat alternativ för att sortera specifikt för olika typer av anslutningar

  • netstat -lt # för TCP
  • netstat -lu # för UDP
  • netstat -lx # för Unix

Eller så kan du gå på hela motsatta änden av spektrumet och lista alla anslutningar

  • netstat -a

Om du föredrar, är ett annat alternativ som kan vara användbart att komma ihåg att använda alternativet 'n'. När du till exempel använder netstat -n eller netstat -ltn, kommer alla värdnamn inte längre att försöka lösas, och bara IP-adresser kommer att visas, som i exemplet nedan.

netstat-ltn

Som du ser, localhost i namn, löstes till det numeriska värdet efter att ha använt alternativet 'n'

Ett annat sätt att använda netstat är netstat -ie, 'i' för gränssnitt och 'e' för 'utvidgad' som kommer att hjälpa oss att få en mer mänsklig läsbar utgång.

netstat -ie # Detta visar oss en lista över nätverksgränssnitt och information om varje enhet.

netstat ie

Avancerade Netstat-tips

Vad vi vill göra är att berätta för netstat att ge oss output för specifika applikationer som lyssnar på tcp-anslutningar. För att göra detta utfärdar vi kommandot:

  • netstat - tcp - lyssnande - program

Utdata för det här kommandot ser ut som:

Proto Recv-Q Send-Q Lokal adress Utländsk adress Stat PID / Program
tcp 0 0 *: ssh *: * LISTEN 25469 / sshd
tcp 0 0 *: httpd *: * LISTEN 26754 / httpd
tcp 0 0 localhost: ipp *: * LISTEN -

Nu kan du faktiskt se lite användbar information. I ovanstående utgång kan du se att både sshd och httpd lyssnar på inkommande anslutningar. Ovanstående är bara ett utdrag om hur utgången kan se ut. Det som är mycket praktiskt med det här kommandot är att det visar dig om det finns ett kommando eller lokal adress som lyssnar på inkommande anslutningar som inte borde lyssna. Om du hittar en applikation som inte bör lyssna, döda den för att vara säker.

Rutt

Netstat kan snabbt skriva ut maskinens kärnvägstabell med kommandot:

netstat -r

Utgången från detta kommando ser ut som:

Kernel IP-routingtabell
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
standard 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

Statistik

Det här är en av handierna med netstat-verktygen. Med detta kan du ta reda på exakt statistiken för varje protokoll. Den grundläggande kommandostrukturen är:

netstat - statistik

vilket ger dig mycket mer information än du vill. Säg att du bara vill se statistik om TCP-protokollet. För detta kan du utfärda kommandot:

netstat -t - statistik

Utgången till kommandot ovan kommer att innehålla information såsom:

tcp:
4343 öppningar med aktiva anslutningar
8 passiva anslutningsöppningar
5 misslyckade anslutningsförsök
178 anslutningsåterställningar mottagna
6 anslutningar upprättade
59075 mottagna segment
60033 segment skickas ut
76 segment överförs
0 dåliga segment erhållna.
303 återställningar skickade

Eller så kan du få information om UDP också med kommandot:

netstat -u - statistik

Vilket skulle ge dig liknande output för UDP-protokollet.

Bli kreativ

Vad händer om du ville se alla unika IP-adresser anslutna till en server? Du kan göra det med netstat (och med hjälp av några andra verktyg) så:

netstat -nat | awk '{print $ 5}' | klipp -d: -f1 | sed -e '/ ^ $ / d | uniq

Utdata från kommandot ovan beror på hur mycket trafik din maskin / server får. Men det kommer att inkludera alla unika IP-adresser som försöker ansluta till din server.

Vad sägs om att kontrollera om din server är under en DOS-attack? Du kan göra det med netstat så här:
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' | klipp -d: -f1 | sortera | uniq -c | sortera -n

Ovanstående kommando listar upp IP-adresserna som begär den högsta mängden anslutningar till din server. Om du ser ett nummer som är mycket högre än det borde vara, är du troligtvis under en Denial of Service-attack.

Slutgiltiga tankar

Netstat är ett av dessa verktyg som du aldrig tror att du kommer att behöva förrän du plötsligt gör det; och det är alltid bra att veta hur man använder det om behovet uppstår någonsin åtminstone på någon grundnivå. För mer information om hur du använder netstat-kommandot och dess alternativ, kolla in mansidorna genom att skriva man netstat .

Nu du: Vad är ditt föredragna verktyg för att kontrollera nätverksinformation och varför? Låt oss veta i kommentarerna!

Relaterade artiklar