dankzij Linux hebben we toegang tot vele tools die netwerkbeheer faciliteren & diagnostiek. In deze zin is het Linux ping commando een van de meest bruikbare tools voor systeembeheerders en netwerkbeheerders.

de basisfunctie is om te bepalen of een host van het netwerk bereikbaar is of niet. In dit bericht zullen we echter andere, meer geavanceerde mogelijkheden van het Linux Ping commando aanpakken.

inhoudsopgave

Wat is het nut van het ping-commando?,

Het ping commando is een van de meest basale tools voor het werken met netwerken. Het doel is om fouten in de netwerkverbinding te diagnosticeren.

op deze manier is het mogelijk om te weten of een netwerkknooppunt de connectiviteit heeft verloren. Anderzijds is het ook nuttig om andere diagnostische taken uit te voeren, zoals:

  • meet de tijd die twee netwerkknooppunten nodig hebben om te communiceren.
  • we zullen ook het IP-adres van een specifieke host kunnen identificeren. We kunnen deze functie gebruiken op zowel het Internet als in een particulier netwerk.,
  • het ping commando kan gebruikt worden in een bash script om automatische controles uit te voeren met netwerkknooppunten.
  • het maakt het mogelijk om te weten of er een verbinding is met specifieke apparatuur.

zoals u kunt zien, is het een noodzakelijk commando voor het beheer van netwerken en servers.

Hoe werkt het ping commando?

In Linux is het functioneren van het ping commando vrij eenvoudig uit te leggen. Het commando stuurt een reeks kleine pakketten naar een specifieke node.

u kunt dit knooppunt testen met behulp van het IP-adres of de hostnaam., Nadat u het pakket hebt verzonden, controleert en meet het commando vervolgens de tijd die nodig is om een antwoord van het doelknooppunt te ontvangen.

zoals u kunt verwachten, kan de responstijd worden beïnvloed door omstandigheden zoals de geografische locatie tussen de verbindingspunten of een stuk van de hardware die wordt gebruikt tussen de twee knooppunten.

bijvoorbeeld, in bekabelde particuliere netwerken, zal het commando betere tijden krijgen dan met een netwerk met meerdere routers of bruggen.

echter, de informatie die het commando zal genereren zal beoordelen of het netwerk in goede of slechte staat is.,

de syntaxis van het commando is als volgt:

ping 

enkele van de meest bruikbare en gebruikte opties van het ping commando zijn de volgende:

  • -c: met deze optie kunt u opgeven hoeveel pakketten u wilt verzenden.
  • – s: met deze optie kunt u de standaardgrootte van de pakketten wijzigen.
  • – v: uitgebreide modus.
  • – w: specificeert een tijd in seconden dat de uitvoering van het commando zal eindigen. Het maakt niet uit hoeveel pakketten het commando heeft verzonden of ontvangen.
  • – i: met deze optie kunt u de te gebruiken netwerkinterface opgeven.,

het doelknooppunt kan worden opgegeven door een IP-adres of een hostnaam.

kan ik pingen met een proxy?

een proxy is een server of toepassing die fungeert als intermediair voor de verbinding tussen twee punten op een netwerk. Het is de man in het midden die het verzoek direct naar een ander knooppunt doet.

het probleem is dat het Ping commando een directe netwerkverbinding tussen de knooppunten vereist.

daarom kan het ping commando over het algemeen niet goed functioneren als er een proxy achter zit.

een mogelijke oplossing is dat veel websites De ping commando service aanbieden., Aan de andere kant, voor sommige taken van het ping commando, is het mogelijk om het curl commando te gebruiken. Je kunt ook een VPN gebruiken zodat het je IP-adres verbergt.

in sommige Linux distributies wordt dit commando echter niet standaard geïnstalleerd. Controleer het eerst en installeer het als het niet is geïnstalleerd.

Ping IPv6 protocol

normaal gesproken gebruiken we bij gebruik van het ping commando IP-adressen met het IPv4 protocol. Met de komst van het IPv6-protocol wordt het echter steeds vaker gebruikt om adressen in dit formaat op te merken.

De Linux kernel ondersteunt het IPv6 protocol sinds versie 2.,2, dus alle Linux distributies ondersteunen het momenteel.

de basis syntaxis is als volgt:

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

op oude versies was er ping6 Commando. Op recente versies van Linux, ping6 bestaat niet meer, en de functionaliteit is samengevoegd in ping, en het werkt op dezelfde manier als je zag.

de basissyntaxis is als volgt:

ping6 

met de optie-c kunnen we het aantal te verzenden pakketten opgeven en met-i voor de netwerkinterface die u wilt gebruiken., Bijvoorbeeld:

ping6 2001:4860:4860::8888

Ping een specifieke poort

soms willen we weten of een specifieke poort op een node actief is. Echter, het ping commando biedt deze functionaliteit niet, maar het is wel mogelijk om het te doen met het telnet commando dat standaard geïnstalleerd is op Linux.

gebruik hiervoor de volgende syntaxis:

telnet 
telnet google.com 80

op deze manier is het mogelijk om een specifieke poort van een netwerkknooppunt op een primitieve manier te pingen.,

Ping met tijd

hoewel het ping commando nuttige informatie toont, kan het een beetje eenvoudig zijn. Het is echter mogelijk om de werking van het commando een beetje te wijzigen, zodat het de datum van verzending van het pakket laat zien.

dit kan de informatie aangenaam maken voor het oog en kan nuttig zijn voor scripts en logs.

deze syntaxis is voldoende om het te doen. Echter, je moet het ccze pakket installeren.

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

zoals u kunt zien, toont het de tijd voor elk verzonden pakket.,

Ping alle hosts op een bepaald subnet

u kunt een ping-signaal sturen naar alle hosts op een netwerk of subnet. Hiervoor is het voldoende om de optie-b toe te voegen en het broadcast IP-adres van elk netwerk dat eindigt op 255 te pingen.

bijvoorbeeld:

ping -b -c 4 192.168.1.255

dus als de bestemming onbereikbaar is, blokkeren ze misschien ICMP-pakketten die door het ping-commando worden verzonden, of misschien is er een netwerkprobleem of een probleem op de routeringstabel.

hoe een ping beëindigen?,

standaard stuurt het ping commando op Linux continu testpakketten naar hosts. Echter, zodra de informatie beschikbaar is, wordt het noodzakelijk om de uitvoering van het ping commando te beëindigen.

druk hiervoor op de volgende toetsen:

CTRL + C

op deze manier zal het commando onmiddellijk stoppen met werken.

einde na een specifieke telling

kunt u het aantal pakketten beperken tot 10 of wat dan ook. Als het klaar is met het verzenden van de tien pakketten, zal het stoppen.,

ping -c 10 

Waar bevindt het ping-commando zich op Linux?

in een Unix-afgeleid systeem zoals Linux, worden binaries vaak gevonden in het pad:

/usr/bin/

In deze map vindt u veel binaries die we gebruiken als commando ‘ s op de terminal. In andere besturingssystemen van de Linux familie is het ook mogelijk om het in de

/usr/sbin/

map te plaatsen.,

Dus, we kunnen controleren met het commando ls bekeken worden:

$ ls /usr/bin | grep ping

In deze afbeelding kunt u zien dat de ping-opdrachten zich bevinden in de

/usr/bin/

een Andere manier, u kunt gebruik maken van het commando om te zoeken naar een opdracht op Linux:

$ which ping

Het toont het volgende:

/usr/bin/ping

Check de latentie met behulp van het ping-commando

Één van de mogelijkheden aangeboden door de ping-opdracht is dat je kunt meten de aansluiting reactietijd. Dat is de latentie.,

om de latentie te meten met behulp van het ping commando, gebruik het gewoon en let op de schermuitvoer:

ping -c 4 ping -c 4 192.168.1.1

zoals u kunt zien, zijn er vier pakketten verzonden naar de bestemming met een bepaalde responstijd.

onderaan staat een regel die als volgt begint:

rtt min/avg/max/mdev

de tweede waarde na het gelijkteken is de latentiewaarde. In dit geval is de waarde 6.798.,

met de latentie is het mogelijk om de hosts te bepalen die een lagere connectiviteit hebben dan de rest. Op die manier kunnen we de nodige maatregelen nemen.

vind de ideale MTU

de MTU (maximale transmissieeenheid) is een waarde die statisch de grootte in bytes uitdrukt van de grootste gegevenseenheid die over een netwerk kan worden verzonden.

momenteel, als gevolg van veiligheidsmaatregelen, meer en meer netwerken voorkomen dat MTU werken. Echter, de meeste Ethernet lokale netwerken gebruiken een 1500 byte MTU.,

Als u de ideale MTU-waarde wilt vinden met behulp van het ping-commando, stelt u de beginwaarden in en verlaagt u tot er geen fout is. Als de waarde te hoog is, krijgen we de volgende fout:

ping: local error: Message too long

gebruik hiervoor de volgende syntaxis:

ping -M do -s 

bijvoorbeeld:

ping -M do -s 1473 192.168.1.1

in dit geval is de waarde van de pakketgrootte zeer groot. Dus Ik zal het verminderen. In dit geval is de optimale waarde 1472.,

Als u een ander bericht krijgt, moet de beginwaarde één voor één worden verlaagd totdat u het gewenste resultaat krijgt.

als de MTU-waarde bekend is, kan deze worden gebruikt om het netwerkgedrag te verbeteren, vooral als dit een groot of zelfs Metropolitaans netwerk is.

Ping op laag 2 (met behulp van arping)

met het ping commando kunnen we testen uitvoeren waarbij we het IP-adres van een specifiek knooppunt binnen het netwerk kennen. Dit komt omdat het ping commando werkt op laag 3 van het OSI model (netwerk).,

aan de andere kant is het mogelijk om een ander commando dat in Linux is ingebouwd als arping te gebruiken. Dit commando werkt vergelijkbaar met ping maar werkt op laag 2 van het OSI model.

de syntaxis van het commando is als volgt:

$ sudo arping 
$ sudo arping 192.168.1.1

u krijgt een resultaat als volgt:

De schermuitvoer van het commando toont eerst de grootte van het verzonden pakket en vervolgens de MAC-adres van het knooppunt en de responstijd.

merk op dat dit commando niet standaard wordt geïnstalleerd op Debian Linux en derivaten., Dus je moet het installeren, dan kun je het draaien als root.

Ping een hostnaam

standaard stuurt het commando ping testpakketten naar de bestemming met behulp van het IP-adres of de hostnaam van de bestemming. Het moet ook worden opgemerkt dat de meeste ping-implementaties op Linux niet oplossen DNS in omgekeerde.

bijvoorbeeld, als u het ping commando gebruikt door een IP-adres toe te voegen, zal het alleen het IP-adres van de host teruggeven aan de uitvoer. Omgekeerd, als we een hostnaam hebben opgegeven, zal het deze oplossen en het IP aan de uitvoer tonen.,

controleer de uitvoer van het volgende commando:

$ ping google.com

ping route (met behulp van traceroute)

het commando ping toont niet de route van de bron naar de bestemming.

en dit kan heel nuttig zijn in het geval dat de verbinding met de host verloren is gegaan omdat we kunnen begrijpen op welk punt de verbinding verloren is gegaan.

het tracert of traceroute commando werkt op een zeer vergelijkbare manier als het ping commando. Het voordeel hiervan is dat het het pad toont dat het pakket neemt, en dus zijn route toont.,

net als het ping commando wordt geïnstalleerd in de meeste Linux distributies. De basis syntaxis is als volgt:

traceroute 

Op die manier kunnen we de route zien die de pakketten nemen.

voer commando uit als ping mislukt

stel dat u gewaarschuwd wilt worden als het ping commando mislukt. Om dit te doen, moet je het ping commando opnemen in een bash script om de gewenste conditie in te stellen.,

bijvoorbeeld, met dit shell script kunt u controleren of het ping commando faalt:

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

Stel de ping pakketgrootte in

De standaardgrootte van pakketten die door het ping commando naar hosts worden verzonden is 56 bytes. Het is laag genoeg om de werking van het netwerk niet te beïnvloeden.

echter, het is mogelijk om het te veranderen naar een andere waarde. Voeg hiervoor gewoon de optie-s toe met de gewenste pakketgrootte.,

bijvoorbeeld:

ping -s hostname/IP

Als u wilt dat de pakketgrootte 100 bytes is, gebruik dan het volgende commando:

ping -s 100 192.168.1.1

onthoud dat het enigszins kan variëren door de MTU.

Schakel het ping commando

uit als we verantwoordelijk zijn voor het onderhouden van een netwerk, kunnen we ping-reacties op elk gewenst moment uitschakelen. We kunnen het tijdelijk of permanent doen, afhankelijk van onze behoeften.,

als we het tijdelijk willen deactiveren, is het voldoende om dit commando als root gebruiker te gebruiken:

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

Dit zal het ping commando-antwoord uitschakelen, maar alleen totdat je het systeem opnieuw opstart.

Als u het permanent wilt doen, moet u het volgende bestand bewerken

/etc/sysctl.conf

en de volgende regel toevoegen:

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

sla vervolgens het bestand op en sluit af., Om de wijzigingen toe te passen, gebruik je het volgende commando:

$ sysctl -p

Dit zal de ping-opdracht of het antwoord van ICMP-pakketten uitschakelen.

conclusie

In dit bericht hebben we in detail uitgelegd hoe het ping commando werkt op Linux. Van het nut tot het uitschakelen. Ping is een van de makkelijkste commando ‘ s om te gebruiken.

hierdoor weet de persoon die verantwoordelijk is voor de werking van het netwerk waar het probleem zich bevindt, zodat hij actie kan ondernemen.

Ik hoop dat u het bericht nuttig vindt. Blijf terugkomen.

Dank u.,

oprichter van LikeGeeks. Ik werk sinds 2010 als Linux systeembeheerder. Ik ben verantwoordelijk voor het onderhouden, beveiligen en oplossen van problemen met Linux-servers voor meerdere clients over de hele wereld. Ik hou van het schrijven van shell en Python scripts om mijn werk te automatiseren.