Du har sikkert opplevd at Internett på datamaskinen din plutselig går i stykker, noe som kan forekomme ved bruk av ADSL-modem, langdistanse Wifi, GSM og andre lignende upålitelige teknologier. Du kan raskt finne ut om datamaskinen din har internett ved å bruke ping-verktøyet.
Bruksområdet er imidlertid mye bredere, det brukes av nettverksadministratorer for å sjekke tilgjengeligheten til en ekstern node i nettverket, det brukes i forskjellige skript og mange andre steder. I denne artikkelen vil vi se på ping-kommandoen i Linux, vi vil snakke om hvordan du bruker verktøyet, hvordan det fungerer, se på alternativene og funksjonene.
Ping-verktøyet er et enkelt feilsøkingsverktøy for nettverk. Det lar deg sjekke om en ekstern vert er tilgjengelig eller ikke, og det er det hele. For å gjøre dette sjekker verktøyet om verten kan svare på nettverksforespørsler ved hjelp av ICMP-protokollen. Jeg håper jeg ikke trenger å fortelle deg at alle data over nettverket overføres som små pakker. Programmet sender en liten pakke med ICMP-data og forventer å motta en svarpakke tilbake. Hvis det skjer, anses den eksterne verten for å være tilgjengelig. ICMP eller Internet Control Message Protocol er et tillegg til IP-protokollen som brukes til å overføre service- og feilmeldinger.
ICMP-protokollen kan bare sende to typer pakker - feilrapporteringsmeldinger og forespørselsmeldinger. Forespørselsmeldinger er igjen delt inn i:
Ekkoforespørselsmelding;
Ekkosvarmelding.
La oss nå forstå hva ping-kommandoen
gjør. Når du har sendt en ping-forespørsel
til en ekstern vert, setter verktøyet en unik identifikator for hver pakke, i tillegg til TTL og tidspunktet pakken ble sendt. Hvis verten kan nås, sender den et svar; basert på sendetiden kan verktøyet beregne pakkens round trip-tid. Deretter sendes neste pakke. Til slutt beregnes det totale antallet sendte og mottatte pakker, tapsprosent og andre data.
Nå har vi litt øvelse igjen. Men før vi går i gang med det praktiske, skal vi se på syntaksen til kommandoen og dens alternativer. Syntaksen er ganske enkel:
$ ping [options] host_address
Formatet på ping-kommandoen
er veldig enkelt. Du kan sende inn enten en ip-adresse eller et domenenavn som vertsadresse. Alternativene konfigurerer hvordan verktøyet skal oppføre seg. La oss se på de viktigste:
-4
- bruk bare ipv4 (standard);
-6
- bruk bare ipv6;
-A
- adaptiv modus, tiden mellom sending av en pakke er tilpasset tidspunktet for pakkesending og mottak, men ikke mindre enn 200 millisekunder;
-b
- tillat ping av
kringkastingsadresse;
-c
- antall pakker som skal sendes;
-D
- utgangstid som UNIX-tidsstempel
;
-f
- flood-modus, i denne modusen sendes pakker uten forsinkelse, og den kan brukes til DoS-angrep på enkeltnoder. Antall prikker som verktøyet sender ut, angir antall tapte pakker;
-i
- intervallet i
sekunder mellom sending av pakker;
-I
- bruk dette nettverksgrensesnittet til å sende pakker;
-l
- overbelastningsmodus, svært mange pakker sendes, og systemet overvåker ikke svarpakkene;
-n
- ikke hent domener for ip-adresser;
-r
- ignorerer rutingstabeller og sender pakken til det angitte grensesnittet;
-s
- størrelsen på en pakke;
-t
- angi TTL manuelt;
-v
- mer detaljert utdata.
Nå som vi har dekket de grunnleggende parametrene for ping-kommandoen
og dens syntaks, er det tid for praksis, neste gang skal vi snakke om hvordan du pinger en bestemt vert i Linux.
For å sjekke nettverksytelsen brukes ofte til å pinge
et hvilket som helst nettsted som alltid er tilgjengelig, for eksempel google.com
eller enda enklere og kortere ya.ru.
Du trenger bare å passere denne adressen til verktøyet i parametrene, vil det finne ip selv og gjøre alle de nødvendige tingene:
$ ping ya.ru
Hver pakke mottatt en unik identifikator icmp_seq
, antall noder til målnoden ttl og tiden brukt til å levere pakken tid
. For å stoppe ping
, trykk på hurtigtasten Ctrl+C. Til slutt viser verktøyet generell statistikk:
sendtepakker
- sendte pakker;
mottatt -mottatte
pakker;
pakketap
- prosentandel av tapte pakker;
tid
- total arbeidstid;
rtt min/avg/max/mdev
- minimumstid/gjennomsnittligtid/maksimumstid/kvadratisk
avvik.
Hvis ping-kommandoen
ikke stoppes, kan pakkene sendes i svært lang tid, noe som skaper en ekstra belastning på serveren og derfor ikke er ønskelig. Du kan begrense antallet pakker som sendes umiddelbart i kommandoen ved å bruke alternativet -c
:
$ ping -c 3 ya.ru
På samme måte som vi pinger
for et domene, kan du spesifisere ip-adressen direkte. Dette gjør at du kan sjekke om det finnes et nettverk når DNS-servere er feilkonfigurert. Et eksempel:
$ ping -c 3 8.8.8.8
Den neste typen sending av ping-meldinger er ping
flood. Ved hjelp av slike pakker kan du utføre belastningstesting av kanalen eller til og med stenge Internett-tilkoblingen på en av maskinene. Men disse funksjonene kan bare brukes med superbrukerrettigheter. For å organisere en ping-flod spesifiserer du alternativet -f:
$ ping -f losst.ru
I normal modus sendes hver neste pakke som standard når det mottas et svar på den forrige. Men du kan angi intervallet mellom pakkesendingene med -i
:
$ ping -i 0.2 losst.ru
Her utfører ping-programmet
en såkalt, konfigurerbar flood, du angir med hvilken intensitet du vil sende pakker. Med -D-alternativet
kan du se Unix-tidsstempelet for hver melding:
$ ping -D losst.ru
Vi har sett på hva ping-kommandoen
er i Linux, hvordan du bruker den grunnleggende parametere og anvendelsesmetoder. Dette veldig enkle verktøyet kan brukes til å teste nettverksproblemer og fikse dem. I denne forbindelse kan verktøyet bli uunnværlig.