ping(8)

Från Wiki.linux.se
(Omdirigerad från ping)
Hoppa till navigering Hoppa till sök

ping(8)

NAMN

ping — skicka ICMP ECHO_REQUEST till nätvärdar

SYNOPS

ping [-aAbBdCDfhHLnOqrRUvV346]
     [-c count] [-e identifier] [-F flowlabel] [-i interval]
     [-I interface] [-l preload] [-m mark] [-M pmtudisc_option]
     [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern]
     [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
     [hop ...] destination

BESKRIVNING

ping använder ICMP ECHO_REQUEST för att få ICMP ECHO_REPLY från en värd/gateway. Paketet består av IP- och ICMP-huvud följt av tidsstämpel och valfri stoppfyllnad. Fungerar med IPv4 och IPv6 (tvinga med -4 eller -6). Kan även skicka IPv6 Node Information Queries (RFC 4620).

FLAGGOR

Flagga Förklaring
-3 Visar RTT med högre precision (avrunda inte uppåt).
-4 Använd endast IPv4.
-6 Använd endast IPv6.
-a Ljudsignal vid svar (audible ping).
-A Adaptivt intervall baserat på RTT; max ett obesvarat probe i nätet (liknar flood på låga RTT).
-b Tillåt ping mot broadcast-adress.
-B Ändra inte källadress under körning; bind vid start.
-c count Avsluta efter count skickade paket (med -w väntar tills count svar eller timeout).
-C Anropa connect() vid socketskapande.
-d Sätt SO_DEBUG på socket (används normalt inte i Linux).
-D Skriv tidsstämpel (unixtid+µs) före varje rad.
-e identifier Sätt ICMP identifier. 0 kräver rå-socket (ej datagramsocket). Identifier kan visas med -v.
-f Flood-ping: skriv ”.” för skickat och backspace för svar. 0-intervall kräver root.
-F flowlabel (IPv6) Sätt 20-bitars flow label (hex). 0 = slumpad av kernel.
-h Hjälp.
-H Tvinga DNS-namnuppslag i utdata (åsidorsätter -n); nyttigt för numeriska mål eller -f.
-i interval Vänta interval sek mellan paket. Flyttal tillåtet. Root krävs för < 2 ms. Multicast/broadcast: minst 1 s för vanlig användare.
-I interface Ange käll-adress, gränssnitt eller VRF-namn. För IPv6 link-local kan länk anges här eller med ”%”.
-l preload Skicka preload paket omedelbart utan att vänta på svar (root krävs för > 3).
-L Undertryck loopback för multicast-paket.
-m mark Märk utgående paket för t.ex. policy routing. Kräver CAP_NET_ADMIN eller CAP_NET_RAW (>= 5.17).
-M pmtudisc_opt PMTU-strategi: do, want, probe, dont.
-N nodeinfo_option (IPv6) Skicka Node Information Query (RFC 4620). Kräver CAP_NET_RAW.
help – hjälp för NI.
name – fråga efter nodnamn.
-sitelocal|-linklocal|-all] – fråga efter IPv6-adresser (filter).
ipv4[-all] – fråga efter IPv4-adresser (även andra gränssnitt).
subject-ipv6=ADDR / subject-ipv4=ADDR / subject-name=NAME / subject-fqdn=NAME
-n Numerisk utdata (ingen reverse DNS). Standard för numeriska mål eller -f.
-O Rapportera obesvarade ekon innan nästa paket skickas (nyttigt med -D loggning).
-p pattern Upp till 16 hex-byte som fyllnadsdata (felsök data-beroende problem).
-q Tyst läge (endast sammanfattning vid start/slut).
-Q tos Sätt DS/ECN/TOS (decimalt/hex). Se RFC 2474/2481/3168/1349.
-r Bypassa routingtabeller; sänd direkt på anslutet interface (kräver ofta -I).
-R (IPv4) Record Route (max ca 9 hoppar; många ignorerar).
-s packetsize Antal databytar (default 56 → 64 inkl. ICMP-huvud). Max teoretiskt 65507 (IPv4) / 65527 (IPv6); praktiska gränser lägre.
-S sndbuf Sätt socket-sendbuffert (default: rymmer högst ett paket).
-t ttl (IPv4) Sätt IP Time-To-Live.
-T timestamp_option IP-tidsstämplar: tsonly, tsandaddr, tsprespec host1 [...].
-U Visa full ”user-to-user”-latens (äldre beteende).
-v Utförlig utdata; döljer inte DUP vid multicast.
-V Visa version och avsluta.
-w deadline Total timeout i sekunder innan avslut, oavsett antal skickade/svarade.
-W timeout Svarstid-timeout per probe i sekunder (0 = oändlig). Vid svar väntar ping normalt upp till 2×RTT.

MILJÖ

IPUTILS_PING_PTR_LOOKUP=0 inaktiverar reverse DNS som standard. Åsidosätts av -H/-n.

RETURKODER

  • 0 – minst ett svar erhölls (och övrigt OK)
  • 1 – inga svar alls, eller färre än count innan deadline
  • 2 – annat fel

IPv6 link-local

För link-local-mål krävs ofta utgränssnitt. Ange med %ifname/ifindex (t.ex. fe80::1%eth0) eller med -I. Datagramsocket kräver gränssnitt; rå-socket rekommenderar det för tydlighet.

ICMP-paket

IP-huvud utan optioner är 20 B. ICMP ECHO_REQUEST har +8 B ICMP-huvud + data. Angiven packetsize avser datadelen. Om datan rymmer en struct timeval lägger ping in tidsstämpel för RTT-beräkning.

Dubbletter och skadade paket

Dubbletter bör inte förekomma (kan tyda på olämpliga länk-återsändningar). Skadade paket tyder ofta på hårdvarufel längs vägen.

ID-kollisioner

ICMP identifier (16-bit) används i stället för portnummer. Två samtidiga ping med samma ID på samma värd kan få svar levererat fel. ping använder PID; med /proc/sys/kernel/pid_max > 65535 ökar kollisionsrisken.

Testa olika datamönster

Data-beroende nätproblem kan uppdagas med -p (t.ex. -p ff, låga transitioner m.m.). Ibland krävs omfattande testning med verkliga filer/mönster.

TTL-detaljer

TTL minskar normalt med 1 per router. Svars-TTL kan:

  • lämnas oförändrad (gamla BSD)
  • sättas till 255 (moderna BSD → 255 − returroutrar)
  • sättas till annan standard (t.ex. 30/60)

TCP rekommenderar initial TTL ≈ 64 (max 255); se RFC 9293.

BUGGAR

  • Många noder ignorerar RECORD_ROUTE.
  • IP-huvudets maxlängd räcker sällan för full väglogg.
  • Flood-ping (särskilt broadcast) ska endast användas under strikt kontrollerade former.

SÄKERHET

ping kräver CAP_NET_RAW i bl.a. dessa fall: NI-frågor (-N), identifier=0 (-e 0), om ICMP-datagramsockets saknas, eller om användaren inte får skapa echo-socket. Programmet kan vara setuid root.

TILLGÄNGLIGHET

ping ingår i paketet iputils.

HISTORIK

ping kom i 4.3BSD. Denna version är Linux-specifik. Sedan iputils s20150815 finns inte separat ping6; en symlink ger samma funktion.

SE ÄVEN

ip(8), ss(8)

COLOFON

Denna sida är del av projektet iputils. Projekt: http://www.skbuff.net/iputils/ — källrepo: https://github.com/iputils/iputils.git (senaste kända commit 2025-01-13). Rendering/uppdateringsanmärkningar: man-pages@man7.org.


Sidslut

Orginalhemsidan på Engelska : https://man7.org/linux/man-pages/man8/ping.8.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.