Tack vare Linux har vi tillgång till många verktyg som underlättar nätverksadministration& diagnostik. I den meningen är Linux ping-kommandot ett av de mest användbara verktygen för sysadmins och nätverksadministratörer.

dess grundläggande funktion är att avgöra om en värd för nätverket är nåbar eller inte. Men i det här inlägget kommer vi att ta itu med andra mer avancerade funktioner i Linux Ping-kommandot.

Innehållsförteckning

vad är användningen av ping-kommandot?,

ping-kommandot är ett av de mest grundläggande verktygen för att arbeta med nätverk. Dess syfte är att diagnostisera nätverksanslutningsfel.

På så sätt är det möjligt att veta om en nätverksnod har förlorat anslutningen. Å andra sidan är det också användbart att utföra andra diagnostiska uppgifter som följande:

  • mäta den tid som två nätverksnoder tar för att kommunicera.
  • Vi kommer också att kunna identifiera IP-adressen för en viss värd. Vi kan använda den här funktionen på både Internet och i ett privat nätverk.,
  • ping-kommandot kan användas i ett bash-skript för att utföra automatiska kontroller med nätverksnoder.
  • Det tillåter att veta om det finns en anslutning till specifik utrustning.

som du kan se är det ett nödvändigt kommando för administration av nätverk och servrar.

hur fungerar ping-kommandot?

i Linux är funktionen av ping-kommandot ganska enkelt att förklara. Kommandot skickar en serie små paket till en viss nod.

Du kan testa den här noden med antingen IP-adressen eller värdnamnet., Sedan, när du har skickat paketet, verifierar kommandot och mäter den tid det tar att få ett svar från destinationsnoden.

som du kan förvänta dig kan svarstiden påverkas på grund av förhållanden som den geografiska platsen mellan anslutningspunkterna eller någon del av hårdvaran som används mellan de två noderna.

till exempel i trådbundna privata nätverk kommer kommandot att få bättre tider än med ett nätverk med flera routrar eller broar.

den information som kommandot genererar kommer dock att bedöma om nätverket är i gott eller dåligt skick.,

syntaxen för kommandot är följande:

ping 

några av de mest användbara och använda alternativen för ping-kommandot är följande:

  • – c: med det här alternativet kan du ange hur många paket som ska skickas.
  • -s: med det här alternativet kan du ändra standardstorleken på paketen.
  • -v: utförligt läge.
  • -w: anger en tid i sekunder som utförandet av kommandot kommer att sluta. Oavsett hur många paket kommandot har skickat eller tagit emot.
  • -i: med det här alternativet kan du ange vilket nätverksgränssnitt som ska användas.,

destinationsnoden kan anges med en IP-adress eller ett värdnamn.

kan jag Pinga med en proxy?

en proxy är en server eller ett program som fungerar som mellanhand för anslutningen mellan två punkter i ett nätverk. Det är mannen i mitten som gör begäran direkt till en annan nod.

problemet är att Ping-kommandot kräver en direkt nätverksanslutning mellan noderna.

därför kan Ping-kommandot i allmänhet inte fungera korrekt om det finns en proxy bakom den.

en möjlig lösning är att många webbplatser erbjuder ping-kommandotjänsten., Å andra sidan, för vissa uppgifter i ping-kommandot, är det möjligt att använda curl-kommandot. Du kan också använda en VPN så att den kommer att gömma din IP.

i vissa Linux-distributioner installeras dock inte kommandot som standard. Först verifiera det och installera det om det inte är installerat.

ping IPv6-protokoll

normalt använder vi IP-adresser med IPv4-protokollet när vi använder Ping-kommandot. Men med tillkomsten av IPv6-protokollet är det allt vanligare att märka adresser i detta format.

Linuxkärnan har stöd för IPv6-protokollet sedan version 2.,2, Så alla Linux-distributioner stöder för närvarande det.

den grundläggande syntaxen är som följer:

$ ping -6 2001:4860:4860::8888

i gamla versioner fanns ping6-kommandot. På de senaste versionerna av Linux finns ping6 inte längre, och dess funktionalitet har slagits samman till ping, och det fungerar på samma sätt som du såg.

den grundläggande syntaxen är som följer:

ping6 

med alternativet-C kan vi ange antalet paket att skicka och med-i för nätverksgränssnittet du ska använda., Till exempel:

ping6 2001:4860:4860::8888

Pinga en specifik port

Ibland vill vi veta om en specifik port på en nod är aktiv. Ping-kommandot ger emellertid inte denna funktionalitet, men det är möjligt att göra det med telnet-kommandot som är installerat som standard på Linux.

för att göra detta, använd bara följande syntax:

telnet 
telnet google.com 80

På så sätt är det möjligt att pinga en specifik port av en nätverksnod på ett primitivt sätt.,

Ping med tiden

även om ping-kommandot visar användbar information kan det vara lite enkelt. Det är dock möjligt att ändra kommandoens funktion lite, för att visa det datum paketet skickas.

detta kan göra informationen tilltalande för ögat och kan vara användbart för skript och loggar.

denna syntax är tillräcklig för att göra det. Du måste dock installera ccze-paketet.

ping | xargs -n1 -i bash -c 'echo `date +%F\ %T`" {}"' | ccze

som du kan se visar det tiden för varje paket som skickas.,

pinga alla värdar på ett visst subnät

Du kan skicka en ping-signal till alla värdar i ett nätverk eller subnät. För detta är det tillräckligt att lägga till alternativet – B och Pinga sändningens IP-adress för alla nätverk som slutar med 255.

till exempel:

ping -b -c 4 192.168.1.255

så om destinationen inte går att nå, kanske blockerar de ICMP-paket som skickas av ping-kommandot, eller kanske finns det ett nätverksproblem eller ett problem på routningstabellen.

Hur avslutar man en ping?,

som standard skickar ping-kommandot på Linux kontinuerligt testpaket till värdar. Men när informationen är tillgänglig blir det nödvändigt att avsluta utförandet av ping-kommandot.

för att göra det, tryck bara på följande tangenter:

CTRL + C

På så sätt kommer kommandot omedelbart att sluta fungera.

avsluta efter ett visst antal

Du kan begränsa antalet paket till 10 eller vad som helst. När det är klart skickar de tio paketen, det kommer att sluta.,

ping -c 10 

Var finns ping-kommandot på Linux?

i ett Unix-härlett system som Linux finns binärer ofta i sökvägen:

/usr/bin/

i den här katalogen hittar du många binärer som vi använder som kommandon på terminalen. I andra operativsystem i Linux-familjen är det också möjligt att placera det i katalogen

/usr/sbin/

.,

Så vi kan kontrollera det genom att använda ls-kommandot:

$ ls /usr/bin | grep ping

i den här bilden kan du se att ping-kommandona finns i

/usr/bin/

ett annat sätt kan du använda vilket kommando för att lokalisera ett kommando på Linux:

/usr/bin/

id=”4bd0bdd082″>

det kommer att visa följande:

/usr/bin/ping

kontrollera latens med hjälp av ping-kommandot

en av de möjligheter som erbjuds av ping-kommandot är att du kan mäta anslutningssvarstiden. Det är latensen.,

för att mäta latensen med hjälp av ping-kommandot, Använd det bara och var uppmärksam på skärmutgången:

ping -c 4 ping -c 4 192.168.1.1

som du kan se har fyra paket skickats till destinationen med en viss svarstid.

längst ner finns en rad som börjar enligt följande:

rtt min/avg/max/mdev

det andra värdet efter equal-tecknet är latensvärdet. I detta fall är värdet 6.798.,

med latensen är det möjligt att bestämma värdarna som har anslutning sämre än resten. På så sätt kommer vi att kunna vidta lämpliga åtgärder.

hitta den perfekta MTU

mtu (maximal överföringsenhet) är ett värde som statiskt uttrycker storleken i byte av den största dataenheten som kan skickas via ett nätverk.

För närvarande, på grund av säkerhetsåtgärder, hindrar fler och fler nätverk MTU från att fungera. Men de flesta Ethernet lokala nätverk använder en 1500 byte MTU.,

om du vill hitta det perfekta mtu-värdet med hjälp av ping-kommandot, Ställ in de ursprungliga värdena och minska tills det inte finns något fel. Om värdet är för högt får vi nästa fel:

ping: local error: Message too long

för att göra detta, använd följande syntax:

ping -M do -s 

till exempel:

ping -M do -s 1473 192.168.1.1

om värdet är för högt får vi nästa fel:

ping: local error: Message too long

för att göra detta, använd följande syntax:

iv id = ” i detta fall är värdet på förpackningsstorleken mycket stor. Så jag kommer att minska det. I detta fall är det optimala värdet 1472.,

om du får ett annat meddelande måste det ursprungliga värdet minskas en efter en tills du får önskat resultat.

om mtu-värdet är känt kan det användas för att förbättra nätverksbeteendet, särskilt om det här är ett stort eller till och med storstadsnätverk.

Ping på lager 2 (med arping)

med ping-kommandot kommer vi att kunna utföra tester som känner till IP-adressen för en viss nod i nätverket. Detta beror på att ping-kommandot fungerar på lager 3 i OSI-modellen (nätverk).,

å andra sidan är det möjligt att använda ett annat kommando som är inbyggt i Linux som arping. Detta kommando fungerar mycket lik ping men fungerar på lager 2 av OSI-modellen.

syntaxen för kommandot är som följer:

$ sudo arping 
$ sudo arping 192.168.1.1

du får ett resultat så här:

skärmutgången för kommandot visar först storleken på det skickade paketet och sedan nodens MAC-adress och svarstiden.

Observera att det här kommandot inte är installerat som standard på Debian Linux och derivat., Så du måste installera det, då kan du köra det som root.

Pinga ett värdnamn

som standard skickar ping-kommandot testpaket till destinationen med hjälp av IP-adressen eller värdnamnet för destinationen. Det bör också noteras att de flesta ping-implementeringar på Linux inte löser DNS i omvänd ordning.

om du till exempel använder Ping-kommandot genom att lägga till en IP-adress kommer den bara att returnera värdns IP-adress vid utgången. Omvänt, om vi har angett ett värdnamn, kommer det att lösa det och visa IP vid utgången.,

kontrollera utmatningen från följande kommando:

$ ping google.com

Ping route (med traceroute)

ping-kommandot visar inte rutten från källan för att nå destinationen.

och detta kan vara ganska användbart om anslutningen till värden har förlorats eftersom vi kan förstå vid vilken tidpunkt anslutningen har förlorats.

kommandot tracert eller traceroute fungerar på ett mycket liknande sätt som ping-kommandot. Fördelen med detta är att det visar den väg som paketet tar, vilket visar sin rutt.,

som ping-kommandot installeras i de flesta Linux-distributioner. Den grundläggande syntaxen är som följer:

traceroute 

På så sätt kan vi se rutten som paketen tar.

Kör kommando om ping misslyckas

Antag att du vill bli varnad när ping-kommandot misslyckas. För att göra detta måste du införliva ping-kommandot i ett bash-skript för att ställa in önskat tillstånd.,

med det här skalskriptet kan du till exempel kontrollera om ping-kommandot misslyckas:

#! /bin/bashping -c 1 If ; then #Your_command_hereFi

Ställ in ping-paketstorleken

standardstorleken på paket som skickas av ping-kommandot till värdar är 56 byte. Det är ett tillräckligt lågt värde för att inte påverka nätverkets funktion.

det är dock möjligt att ändra det till ett annat värde. För att göra detta, lägg bara till-S-alternativet med önskad paketstorlek.,

till exempel:

ping -s hostname/IP

om du vill att paketstorleken ska vara 100 byte, använd bara följande kommando:

ping -s 100 192.168.1.1

Kom ihåg att det kan variera något av MTU.

inaktivera ping-kommandot

om vi är ansvariga för att upprätthålla ett nätverk kanske vi vill inaktivera ping-svar när som helst. Vi kan göra det tillfälligt eller permanent, enligt våra behov.,

om vi vill inaktivera det tillfälligt är det tillräckligt att använda det här kommandot som rotanvändare:

$ su$ echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

detta kommer att inaktivera ping-kommandosvaret, men bara tills du startar om systemet.

om du vill göra det permanent måste du redigera följande fil

/etc/sysctl.conf

och lägga till nästa rad:

$ nano /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1

spara sedan filen och avsluta., För att tillämpa ändringarna, använd det här kommandot:

$ sysctl -p

detta inaktiverar ping-kommandot eller ICMP-paketens svar.

slutsats

i det här inlägget har vi förklarat i detalj hur ping-kommandot fungerar på Linux. Från dess verktyg till inaktivera det. Ping är en av de enklaste kommandon att använda.

detta gör att den person som ansvarar för driften av nätverket vet var problemet är så att han kan vidta åtgärder.

Jag hoppas att du hittar inlägget användbart. Kom tillbaka.

Tack.,

grundare av LikeGeeks. Jag arbetar som Linux systemadministratör sedan 2010. Jag är ansvarig för att upprätthålla, säkra och felsöka Linux-servrar för flera kunder runt om i världen. Jag älskar att skriva shell och Python skript för att automatisera mitt arbete.