Bizonyára Ön is szembesült már azzal a helyzettel, hogy a számítógépén hirtelen megszakad az internet, ilyen viselkedés figyelhető meg ADSL-modemek, távolsági Wifi, GSM és más hasonló megbízhatatlan technológiák használata esetén. A ping segédprogrammal gyorsan kiderítheti, hogy számítógépén van-e internet.
Alkalmazási területe azonban sokkal szélesebb, a hálózati rendszergazdák használják a hálózat egy távoli csomópontjának elérhetőségének ellenőrzésére, különböző szkriptekben és sok más helyen is használják. Ebben a cikkben a ping parancsot nézzük meg Linuxban, beszélünk a segédprogram használatáról, működéséről, megnézzük az opcióit és a funkcióit.
A ping segédprogram egy egyszerű hálózati hibaelhárító eszköz. Lehetővé teszi, hogy ellenőrizze, hogy egy távoli állomás elérhető-e vagy sem, és ennyi. Ehhez a segédprogram ellenőrzi, hogy az állomás képes-e válaszolni a hálózati kérésekre az ICMP protokoll segítségével. Remélem, nem kell mondanom, hogy a hálózaton keresztül minden adatot kis csomagokban továbbítanak. A program egy kis ICMP-adatcsomagot küld, és várja, hogy visszakapja a válaszcsomagot, ha ez megtörténik, akkor a távoli állomás elérhetőnek tekinthető. Az ICMP vagy Internet Control Message Protocol az IP protokoll egy kiegészítője, amelyet szolgáltatási és hibaüzenetek továbbítására használnak.
Az ICMP protokoll csak kétféle csomagot tud továbbítani - hibajelző üzeneteket és kérő üzeneteket. A lekérdezési üzenetek viszont a következőkre oszlanak:
Echo-kérőüzenet;
Echo válaszüzenet.
Ezután értsük meg, hogy mit csinál a ping
parancs. Miután ping-kérést
küldött egy távoli állomásnak, a segédprogram minden csomaghoz egyedi azonosítót, valamint a TTL-t és a csomag elküldésének időpontját állítja be. Ha az állomás elérhető, akkor választ küld; a küldési idő alapján a segédprogram ki tudja számítani a csomag oda-vissza utazási idejét. Ezután következik a következő csomag elküldése. A végén kiszámításra kerül az elküldött és fogadott csomagok teljes száma, a veszteség százalékos aránya és egyéb adatok.
Most már csak egy kis gyakorlás van hátra. De mielőtt belevágnánk a gyakorlatba, nézzük meg a parancs szintaxisát és opcióit. A szintaxis meglehetősen egyszerű:
$ ping [options] host_address
A ping
parancs formátuma nagyon egyszerű. A hoszt címeként ip-címet vagy tartománynevet adhatunk meg. Az opciók a segédprogram viselkedését konfigurálják. Vegyük sorra a legfontosabbakat:
-4
- csak ipv4-et használ (alapértelmezett);
-6
- csak ipv6-ot használ;
-A
- adaptív üzemmód, a csomagküldés közötti idő a csomagküldés és -fogadás idejéhez igazodik, de nem lehet kevesebb 200 milliszekundumnál;
-b
- engedélyezi a broadcast címek pingelését
;
-c
- a küldendő csomagok száma;
-D
- a kimeneti idő UNIX időbélyegként
;
-f
- flood mód, ebben a módban a csomagok késedelem nélkül továbbításra kerülnek, DoS-támadásokhoz használható egyes csomópontok ellen. A segédprogram által kiadott pontok száma az elveszett csomagok számát jelzi;
-i
- a csomagok küldése közötti intervallum másodpercben;
-I
- ezt a hálózati interfészt használja a csomagok küldésére;
-l
- túlterhelési mód, nagyon sok csomagot küld, és a rendszer nem figyeli a válaszcsomagokat;
-n
- ne kapjon tartományokat az ip-címekhez;
-r
- figyelmen kívül hagyja az útválasztási táblázatokat, és a csomagot a megadott interfészre küldi;
-s
- egy csomag mérete;
-t
- kézzel állítsa be a TTL-t;
-v
- részletesebb kimenet.
Most, hogy a ping
parancs alapvető paramétereivel és szintaxisával foglalkoztunk, itt az ideje a gyakorlatnak, a következőkben arról lesz szó, hogyan lehet egy adott hosztot pingelni Linuxban.
A hálózati teljesítmény ellenőrzésére gyakran használják a mindig elérhető webhelyek pingelését
, mint például a google.com
vagy még egyszerűbb és rövidebb ya.ru.
Csak ezt a címet kell átadni a segédprogramnak a paraméterek között, az megkeresi magát az ip-t és minden szükséges dolgot elvégez:
$ ping ya.ru
Minden csomag kapott egy egyedi azonosítót icmp_seq
, a csomópontok száma a célcsomópont ttl és a csomag kézbesítésére fordított idő idő
. A pingelés
leállításához nyomja meg a Ctrl+C billentyűkombinációt. A végén a segédprogram általános statisztikákat jelenít meg:
átküldött csomagok
- elküldött csomagok;
fogadott
- fogadott csomagok;
csomagvesztés
- az elveszett csomagok százalékos aránya;
idő
- teljes munkaidő;
rtt min/avg/max/mdev
- minimális idő/átlagosidő/maximális
idő/négyzetes eltérés.
Ha a ping
parancsot nem állítják le, a csomagok nagyon hosszú ideig küldhetők, ez további terhelést jelent a szerver számára, ezért nem kívánatos. A parancshívásban a -c
kapcsolóval korlátozhatja az azonnal elküldött csomagok számát:
$ ping -c 3 ya.ru
Ugyanúgy, ahogyan a tartományra pingelünk
, az ip-címet közvetlenül is megadhatjuk. Ez lehetővé teszi annak ellenőrzését, hogy van-e hálózat, ha a DNS-kiszolgálók rosszul vannak konfigurálva. Például:
$ ping -c 3 8.8.8.8
A ping
üzenetek küldésének következő típusa, a ping
flood. Az ilyen csomagok segítségével elvégezheti a csatorna terheléses tesztelését, vagy akár le is kapcsolhatja az internetkapcsolatot az egyik gépen. Ezek a funkciók azonban csak szuperfelhasználói jogokkal használhatók. A ping flood megszervezéséhez adja meg a -f
opciót:
$ ping -f losst.ru
Alapértelmezés szerint normál üzemmódban minden következő csomag akkor kerül elküldésre, amikor az előzőre válasz érkezik. De beállíthatja a csomagok küldése közötti intervallumot -i
:
$ ping -i 0.2 losst.ru
Itt a ping
program egy úgynevezett, konfigurálható áradást hajt végre, Ön adja meg, hogy milyen intenzitással küldjön csomagokat. A -D
opcióval minden egyes üzenet Unix időbélyegzőjét láthatod:
$ ping -D losst.ru
Megnéztük, hogy mi a ping
parancs Linuxban, hogyan kell használni alapvető paraméterei és alkalmazási módjai. Ezzel a nagyon egyszerű eszközzel hálózati problémákat lehet tesztelni és javítani. Ebben a tekintetben a segédprogram nélkülözhetetlenné válhat.