Fem morsom liten Linux Nettverkstestere og Monitors

I denne roundup av Linux nettverk testing verktøy vi bruker Bandwidthd, Speedometer, Nethogs, Darkstat, og Iperf å spore båndbredde, hastighet, finne nettverks svin, og teste ytelsen.
< h3> Bandwidthd

Bandwidthd er en morsom liten app som ikke har blitt oppdatert siden 2005, men (i alle fall på min Kubuntu system) den fortsatt fungerer. Det gjør fine fargerike grafer av innkommende og utgående båndbredde, og stemmer overens det opp etter dag, uke, måned og år på en webside. Så du trenger også Apache, eller noen andre HTTP-server. Du kan overvåke en enkelt PC, eller alle på LAN. Dette er en fin app for sporing av månedlig bruk hvis du trenger å bekymre deg for båndbredde caps.


Bandwidthd har nesten ingen dokumentasjon. Mannen bandwidthd viser alle sine konfigurasjonsfiler og kataloger. Dens Sourceforge side er enda sparser. Det finnes to versjoner: bandwidthd og bandwidthd-pgsql. bandwidthd genererer statiske HTML-sider hver 150 sekunder, og bandwidthd-pgsql viser grafer og data om dynamiske PHP sider. Websiden sier "visuelt resultat av begge er like, men databasen drevet systemet tillater for søking, filtrering, flere sensorer og egendefinerte rapporter." Jeg antar at hvis du ønsker å søke, filter, gjøre flere sensorer, eller opprette egendefinerte rapporter må du hacke PHP-filer. Installasjon på systemet mitt var enkelt, takket være Debian og Ubuntu pakken vedlikeholdere. Det skapte Apache konfigurasjonen og sette opp PostgreSQL, og deretter alt jeg måtte gjøre var å åpne en nettleser til http:. //Localhost /bandwidthd som ikke er dokumentert noe sted, bortsett fra i konfigurasjonsfiler, slik at du hørte det her først

Speedometer

Speedometer viser sanntidsgrafer på konsollen (slik at du ikke trenger en webserver) av hvor raskt data er i bevegelse over nettverkstilkoblingen, og den svarer også på spørsmålet "Hvordan rask er harddisken min? " De enkleste bruks viser enten mottas eller sendes bytes per sekund. Dette kalles en kran:

 $ speedometer -r eth0 

Du kan se strømmen begge veier ved å opprette to kraner:

 $ speedometer -r eth0 -t eth0 

Standard er å stable kraner. -C gjør fine spalter i stedet, og -k 256 viser 256 farger i stedet for standard 16, som i figur 2.

 $ speedometer -r eth0 -c -t eth0 


< p> Du kan måle harddisken din er rå skrivehastigheten ved å bruke dd til å lage en 1-gigabyte rå fil, og deretter bruke Speedometer å måle hvor lang tid det tar å lage det:

 $ dd bs = 1000000 count = 1000 if = /dev /zero of = testfile & speedometer testfile 

Endre telleverdien til å generere en annen fil størrelse; for eksempel count = 2 000 skaper en 2GB fil. Du kan også eksperimentere med ulike blokkstørrelser (BS) for å se om det gjør en forskjell. Husk å slette testfile når du er ferdig, med mindre du liker å ha ubrukelige store filer legging rundt.

Nethogs

Nethogs er en enkel konsoll app som viser båndbredde per prosessen, slik at du raskt kan se hvem som hogging nettverket. Den enkleste påkalling angir nettverksgrensesnitt, og deretter det viser både innkommende og utgående pakker:

 $ sudo nethogs eth0NetHogs versjon 0.8.0 PID BRUKER PROGRAM DEV sendt MOTTATT 1 703 Carla ssh eth0 9702,096 381,697 KB /sec5734 www-data /usr /bin /fy eth0 1,302 59,301 KB /sec13113 Carla ..lib /firefox /firefox eth0 0,021 0,023 KB /sec2462 Carla ..oobar /lib /foobar eth0 0.000 0.000 KB /sek? root ukjent TCP 0.000 0.000 KB /sek TOTAL 9703,419 441,021 KB /sek 

Bruk -r muligheten til å vise bare mottatte pakker, og -s å se bare sendte pakker.

Darkstat

Darkstat er en annen Web-basert nettverk monitor, men det inkluderer en egen innebygd HTTP-server slik at du ikke trenger Apache. Starter den opp med navnet på nettverksgrensesnittet som det eneste alternativet:

 $ sudo darkstat -i eth0 

Deretter åpner en nettleser til http: //localhost: 667, og du vil se noe lignende figur 3.


Klikk på automatisk reload knappen for å gjøre det oppdateres i sanntid. Hosts-kategorien viser hvem du er koblet til, hvor lenge du har vært koblet til, og hvor mye trafikk, i byte, som har gått mellom dere.

Du kan kjøre Darkstat som en daemon, og har den starte på støvel. Hvordan du gjør dette avhenger av din Linux-distribusjon, og hva init systemet du bruker (oppkomling, systemd, sysvinit, BSD init). Jeg skal la det som lekser for å finne ut av dette.

Iperf

Doubtless deg fine lesere har vært lurer på "Hva om Iperf?" Vel, her er det. Iperf rapporterer båndbredde, forsinkelse jitter, og datagram tap. Med andre ord, tester den koblingen kvalitet, noe som er en stor avtale for streaming media som musikk, videoer og videosamtaler. Du må installere Iperf på begge ender av linken du ønsker å teste, som i disse eksemplene er Studio og Uberpc. Deretter starter Iperf i servermodus på en vert, og kjøre den i klientmodus på den andre verten. Legg merke til at på klienten, må du navnet på serveren. Dette er den enkleste måten å kjøre en test:

 Carla @ studio: ~ $ Iperf -sterry @ uberpc: ~ $ Iperf -c studio 
 Carla @ studio: ~ $ Iperf -s ---- -------------------------------------------------- ------ Server lytter på TCP port 5001TCP vindusstørrelse: 85,3 KByte (standard) ------------------------------ ------------------------------ [4] lokal 192.168.1.132 port 5001 i forbindelse med 192.168.1.182 port 32865 [ID] Intervall Overfør båndbredde [4] 0,0-10,0 sekunder 1,09 GBytes 938 Mbits /secterry @ uberpc: ~ $ Iperf -c studio -------------------------- ---------------------------------- Client kobler til studio, TCP port 5001TCP vindusstørrelse: 22,9 KByte (standard) -------------------------------------------------- ---------- [3] lokal 192.168.1.182 port 32865 koblet med 192.168.1.132 port 5001 [ID] Intervall Transfer båndbredde [3] 0,0-10,0 sek 1,09 GBytes 938 Mbits /sek 

Det er en veis, fra server til klient. Du kan teste toveis ytelse fra klienten:

 terry @ uberpc: ~ $ Iperf -c studio -d --------------------- --------------------------------------- Server lytter på TCP port 5001TCP vindusstørrelse: 85,3 KByte (default)------------------------------------------------------------------------------------------------------------------------Client tilkobling til studio, TCP port 5001TCP vindusstørrelse: 54.8 KByte (standard) ----------------------------------- ------------------------- [5] lokal 192.168.1.182 port 32980 koblet med 192.168.1.132 port 5001 [4] lokal 192.168.1.182 port 5001 koblet med 192.168.1.132 port 47130 [ID] Intervall Overfør båndbredde [5] 0,0-10,0 sek 1020 MB 855 Mbits /sek [4] 0,0-10,0 sekunder 1,07 GBytes 920 Mbits /sek 

De er gode hastigheter for gigabit Ethernet, nær de teoretiske maksimumsgrenser, så dette forteller oss at det fysiske nettverket er i god form. Real-life ytelse kommer til å være tregere på grunn av høyere overhead enn denne enkle testen. Nå la oss se på forsinkelse jitter. Stopp server med Ctrl + c, og deretter starte den med Iperf -Su. På klient forsøk:

 $ Iperf -c studio -ub 900m 

-b 900m betyr kjøre testen på 900 megabit per sekund, så du trenger å justere dette for nettverket, og for å teste ulike hastigheter . Et godt løp ser slik ut:

 [ID] Intervall Overfør båndbredde Jitter mistet /Totalt Datagrammer [3] 0,0-10,0 sek 958 MB 803 Mbits /sek 0,013 ms 1780/684936 (0,26%) [3] 0,0 -10.0 sec 1 datagrammer mottatt out-of-order 

0,013 ms jitter er omtrent like rent som det blir. Alt over 1000 ms kommer til å forstyrre audio og video streaming. En datagram tap på 0,26% er også utmerket. Økte tap bidrar til høyere latency som pakker må sendes på nytt.

Det er en ny versjon av Iperf, og det er Iperf 3.0.1. Tilsynelatende dette kommer til å erstatte iperf2 dag. Det har blitt omskrevet fra bunnen av, så det er all spiffy ren og ikke crufty, og det inkluderer et bibliotek versjon som kan brukes i andre programmer. Det er fortsatt en baby så forventer grove kanter.