Internet är ett stort nätverkssystem fyllt med databaser, servrar, routrar och andra webbstrukturer. När du skriver en webbadress och trycker på Enter-knappen i din webbläsare, dirigeras den via din Internetanslutning till värdadressen över webben. Mitt på destinationen, när ditt paket startar resan från datorn och når destinationsservern, färdas det mycket inom webben. Många Linux-, Windows- och Mac-verktyg låter dig spåra varje steg i ditt Internetpaket. Traceroute-kommandot är ett av de mest använda verktygen som du kan använda på Linux för att spåra varje steg, livestatus, anslutningsstyrka, latens och mycket mer angående dina internetpaket.
Ping Command vs. Traceroute på Linux
Utan tvekan är Ping det mest använda och enklaste nätverkskommandot som visar om destinationsadressen är aktiv eller inte. Skillnaden mellan Ping och traceroute-kommandot är att Ping bara upptäcker om servern eller adressen är uppe eller inte genom att helt enkelt skicka ett paket och analysera signalen.
Medan traceroute-kommandot kan lösa många fler nätverksproblem och bestämma nätverksvägen för att nå destinationsadressen. Traceroute-kommandot kan också förutsäga hur lång tid det tar att ladda en webbsida, upptäcka routrar i webbadressen, värdnamn, DNS-servernamn och många fler.
När vi kör Ping-kommandot på ett nätverkssystem, skickar kommandot automatiskt fyra datapaket till destinationsplatsen; och om en av dem når platsen, bestämmer kommandot att platsen är anslutningsbar och bestämmer hur många sekunder det tog att upprätta anslutningen.
Här är ett kommandoformat för Ping-kommandot för Linux:
ping <IP address> ping <domain name>
Traceroute-kommandot ger oss mer information om destinationen och hur många millisekunder det tar att nå platsen. Till skillnad från Ping-kommandot berättar traceroute-kommandot för oss IP-adresserna för varje enhet och beräknar tiden för data från varje router i stället för att mäta den enda slutdestinationen. Den räknar också det totala antalet hopp på rutten.
Här är ett kommandoformat för traceroute-kommandot för Linux:
traceroute <ip_address>
Skillnaden mellan Traceroute och Mtr och Tracert på Linux
Jag är säker på att du redan har hört talas om traceroute-kommandot, mtr-kommandot och tracert-kommandot för att spåra data i en nätverksmodell. På Linux och Mac kan vi använda kommandot traceroute, där Windows-versionen av kommandot traceroute är kommandot tracert. I grund och botten är traceroute och tracert samma kommandon.
Nu kommer vi att se skillnaden mellan traceroute-kommando och mtr-kommando. Den fullständiga formen av MTR är Matts TraceRoute, som är ett modifierat kommando av traceroute-kommandot. I traceroute spåras paket när de färdas över ett IP-nätverk till en specifik värd.
Exempel på ett traceroute-kommando:
$ traceroute 1.1.1.1 traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1 192.168.1.1 (192.168.1.1) 0.265 ms 0.248 ms 0.239 ms 2 * * * 3 X-X-X-X.X.X.pl (X.X.X.X) 21.871 ms 22.061 ms 25.072 ms (more data here) 10 one.one.one.one (1.1.1.1) 24.072 ms 22.439 ms 21.497 ms
MTR är ett unikt nätverksdiagnosverktyg som kombinerar spårnings- och pingfunktioner. MTR skriver ut en del av traceroute-utgången tillsammans med Ping-resultaten.
Exempel på ett MTR-kommando:
$ mtr 1.1.1.1 -c 5 --report Start: 2019-08-09T15:13:28+0200 HOST: blackhole Loss% Snt Last Avg Best Wrst StDev 1.|-- 192.168.1.1 0.0% 5 0.2 0.1 0.1 0.2 0.0 2.|-- X-X-X-X.X.X 0.0% 5 9.7 9.0 8.4 9.7 0.5 3.|-- X-X-X-X.X.X 0.0% 5 9.6 8.6 6.2 9.8 1.5 (more data here) 10.|-- one.one.one.one 0.0% 5 12.8 13.4 10.7 18.9 3.3
Hur fungerar Traceroute-kommandot i Linux?
Paketet från vårt system till värdadressen går genom routern, åtkomstpunkterna och nätverksgränssnitten. För att bestämma den faktiska rutten för ditt datapaket använder traceroute-kommandot IP-huvudet, ICMP (Internet Control Message Protocol) och TTL eller time-to-live-verktyg på ett nätverkssystem.
Spårning av Internetpaket kan vara mindre komplicerat när du använder en mycket liten LAN-anslutning på ditt system. När du går in i ett wide area-nätverk behöver du traceroute-kommandot för att läsa datahuvudet för att mäta längd, källa och destination samt protokoll.
Traceroute-kommandot använder TCP-protokollet för att upprätta anslutningen. Och 8-bitars TTL-värdet ger oss också TTL-räknarnumren som bestämmer det totala antalet möten mellan datapaketet och destinationen genom routrarna. Paketet får ett timeout-fel när TTL-värdet är ett. Och ICMP skickar ett meddelande från källan till destinationen för paketet som garanterar timeout.
Traceroute-syntax i Linux
Här kommer vi att se de grundläggande syntaxerna för traceroute-kommandot i Linux. Att förstå syntaxerna kommer definitivt att hjälpa dig att förstå alla traceroute-kommandoexempel som vi kommer att lista nedan.
Här är formatet för kommandot:
traceroute [options] host_Address [pathlength]
- -f, –first-hop=NUM: Ställer in avståndet mellan det första hoppet och nästa hopp.
- -g, –gateways=GATES: I öppen routing, visa en lista med gateways.
- -I, –ICMP: Som en sond specificeras ICMP ECHO.
- -m, –max-hop=NUM: Ställ in antalet hopp; Standardvärdet är 64.
- -M, –type=METOD: Spårningsrutter utförs med ICMP eller UDP; standardmetoden är UDP.
- -p, –port=PORT: Definierar nätverksporten; Standardvärdet är 33434.
- -q, –tries=NUM: NUM sondpaket kommer att vidarebefordras per hopp.
- –resolve-hostnames: Du kan använda denna syntax för att korrigera värdnamn.
- -t, –tos=NUM: TOS eller tjänstetyp definieras i NUM
- -w, –wait=NUM: Definierar väntetiden i sekunder.
- -? –help: Skriver ut hjälp och manualer för traceroute-kommandot på Linux.
- –användning: Visar användningen i en kort text.
- -V, –version: Skriv ut den aktuella versionen av traceroute-kommandot på Linux.
Installera Traceroute-kommandot på Linux
Processen att installera traceroute-kommandot på Linux-distributioner är enkel. På Windows- och Mac-system är traceroute-verktyget förinstallerat. På Linux måste du installera det först. Här har jag listat installationskommandona för Ubuntu/Debian, RedHat, Fedora och Arch Linux-system.
Installera traceroute-kommandot i Arch Linux.
sudo pacman -Sy traceroute
Hämta traceroute-kommandot på Ubuntu/Debian Linux.
sudo apt-get install traceroute
Installera traceroute-verktyget på Fedora och Red Hat Linux-system.
# yum install traceroute -y
När installationen är klar kan du kontrollera versionen av traceroute för att säkerställa att verktyget har installerats korrekt på din Linux-maskin.
$ traceroute --version
Exempel på kommandot Traceroute i Linux
Nu ska vi titta på några användbara och praktiska exempel på traceroute-kommandot som du bör lära dig. Traceroute-kommandot fungerar felfritt med alla större Linux-distributioner på både skrivbord och server.
1. Kör Traceroute för en översikt
Traceroute-kommandot som nämns nedan visar oss IP-adressen, det totala antalet hopp i hela rutten, den totala varaktigheten för att upprätta anslutningen och storleken på packarna.
traceroute ubuntupit.com
2. Dölj enhetsnamn
Om du vill dölja namnet på nätverksenheter i utgången av kommandot traceroute, lägg till tecknet -n i kommandot.
traceroute -n ubuntupit.com
3. Ställa in Traceroute timeout värde
Även om du har ett standardvärde för timeout från traceroute-kommandot, kan du ställa in timeoutvärdet manuellt på egen hand. Traceroute-kommandot som nämns nedan visar hur man ställer in timeoutvärdet till 7 sekunder i Linux.
traceroute -w 7.0 ubuntupit.com
4. Ställa in antalet tester
För att ställa in antalet tester eller antalet frågor per hopp för en körning av kommandot traceroute på Linux, kan du använda följande kommando.
traceroute -q 1 ubuntupit.com
5. Ställa in det initiala TTL-värdet
Genom att använda -f-flaggans syntax i traceroute-kommandot kan du ställa in TTL-värdet eller tiden för att leva verktygsvärdet på Linux.
traceroute -f 11 ubuntupit.com
6. Lagra resultatet i en textfil
Du kan exportera resultatet av traceroute-kommandot till en textfil via kommandot nedan på Linux.
traceroute google.com > results.txt
7. Spåra rutten med IPv6
Om din Internetanslutning har en IPv6-konfiguration kan du använda traceroute-kommandot som nämns nedan för att spåra anslutningen.
traceroute -6 ipv6.google.com
8. Spåra rutten med hjälp av IPv4
På samma sätt kan du också definiera en IPv4-anslutning genom traceroute-kommandot som nämns nedan i Linux.
traceroute 4 google.com
9. Ange vilket gränssnitt (NIC) som ska användas
Om ditt Linux-system har mer än ett nätverkskort (NIC), kan du tilldela en av dina NIC att använda traceroute-kommandot med -i-flaggan som nämner namnet på NIC.
traceroute -i enp8s0 google.com
Om du behöver veta namnet på ditt nätverkskort kan du köra kommandot ifconfig.
$ ifconfig
10. Ställ in svarstidsgräns
För att ändra standardsvarstidsgränsen för traceroute-kommandot kan du använda en -w-flagga i traceroute-kommandot på Linux. Denna lilla justering skulle ge ditt datapaket att resa lite längre för att nå destinationsadressen.
traceroute -w 1 google.com
11. Inaktivera IP-adress och värdnamnsmappning
För att inaktivera IP-adressen och dölja värdmappning på Linux, använd ett tecken i traceroute-kommandot. Detta gör att användaren inte kan skriva ut värd-IP-adressen och värdnamnet.
traceroute n google.com
12. Ställ in maximalt antal hopp
Som standard är det genomsnittliga antalet hopp för traceroute-kommandot 30. Du kan ändra hop-värdet i traceroute-kommandot genom att lägga till hop-värdet med en -m-flagga till kommandot.
traceroute -m 7 google.com
13. Fragmentera inte paketet
Om du inte vill fragmentera datapaketet på ditt Linux-system, använd flaggan -F i ditt traceroute-kommando.
$ traceroute -F google.com
14. Dra förpackningen genom dörren
Om du vill dirigera traceroute-kommandot genom din önskade gateway, kan du använda tecknet -g tillsammans med kommandot för att lägga till din gateway till Linux-kommandot.
$ traceroute -g 192.168.1.6 google.com
15. Ställ in destinationsporten som ska användas
Som standard använder traceroute-kommandot nätverksport 33434. Om du behöver ändra nätverksporten kan du använda -p-tecknet i traceroute-kommandot på Linux.
$ traceroute -p 20292 google.com
16. Ta hjälp
Om du behöver mer hjälp och manualer för traceroute-kommandot, kör nedanstående kommandon i skalet. Manualerna kommer definitivt att hjälpa dig att komma igång med verktyget.
traceroute --help man traceroute
Problem du kan möta när du använder kommandot Traceroute
När du använder traceroute-kommandot i Linux kan du stöta på vissa problem om du är ny. Här har vi listat några av de vanligaste problemen som olika användare av Linux-communityt stöter på för traceroute-kommandot.
1. Problem med flaggan -n i Traceroute-kommando i Linux
Tidigare såg vi att du kan använda en n-flagga med kommandot traceroute i Linux för att dölja enhetsnamnet. Om du har några problem med att använda flaggan n i ditt skal och det ger dig ett ogiltigt alternativ, bör du se till att du har rätt traceroute-verktyg installerat på ditt system. Du kan också prova att köra nedanstående kommandon för en alternativ installation på ditt system.
Här är exempelutdata.
$ sudo traceroute -n . Not working $ traceroute: invalid option -- 'n'
Kommandon för att fixa traceroute-verktyget på en Linux-maskin.
$ update-alternatives --display traceroute $ apt-get install traceroute $ update-alternatives --configure traceroute
2. Paket kan inte autentiseras: Problem med Traceroute-kommandot
Om traceroute-verktyget inte kan autentisera på ditt Linux-system, se till att du är sudo-användaren och har rätt behörighet att köra detta kommando på ditt system. Efter att ha säkerställt att det här verktyget är korrekt installerat kan du nu uppdatera ditt paketförråd med kommandot sudo update som nämns nedan.
sudo apt-get install traceroute sudo apt-get update
Du kan sedan köra önskat traceroute-kommando och förhoppningsvis kommer dina problem att lösas.
3. Nyare versioner av Traceroute kan ha problem
I vissa fall, på vissa äldre enheter, kan den senaste versionen av traceroute-kommandot visa vissa problem. Till exempel, om du vill köra traceroute-kommandot med -A-flaggan för att definiera kommandovägen, kan du ha ett problem.
Exempel på felutgång:
~$ traceroute -A 8.8.8.8 traceroute -m 30 -q 1 -w 3 -A 8.8.8.8 traceroute: invalid option -- 'A' Try 'traceroute --help' or 'traceroute --usage' for more information. -A Perform AS path lookups in routing registries and print results directly after the corresponding addresses.
Det här problemet löses ofta automatiskt efter en uppdatering av förvaret. Om du fortfarande har det här problemet, starta om enheten, kör kommandot korrekt och se till att ditt kommando inte har några stavfel.
~$ traceroute -A 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
4. Traceroute installationsfel på Linux
Om du har några problem med att installera traceroute-kommandot på din Linux-maskin, se till att sökvägen du tilldelar för installationen är tillgänglig för paketinstallationen. Du bör också se till att du har superanvändarbehörighet att installera det verktyget. I de flesta fall fortsätter användare att försöka installera traceroute-kommandot i en låst katalog och får ett felmeddelande om tillstånd nekad.
Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
Du kan köra någon av nedan nämnda uppsättningar kommandon för att lösa det här problemet. Glöm inte att fixa det saknade arkivet och installera traceroute-kommandot på Linux.
sudo apt-get install --fix-missing sudo apt-get update && sudo apt-get install traceroute
Skaffa universumförvaret och installera traceroute-kommandot.
sudo add-apt-repository universe sudo apt-get update sudo apt-get install inetutils-traceroute
5. Ta bort hakparenteser () runt IP-adressen i Traceroute på Linux
Ibland kan du få den utgående IP-adressen inom den första hakparentesen eller inom parentes i terminalen.
Här är ett exempel på utdata:
traceroute -m2 8.8.8.8 |grep .net |awk '{print $3}'
(207.225.112.2)
För att ta bort hakparenteserna från utgången, kör kommandot som nämns nedan.
$ traceroute -m 2 8.8.8.8 | awk '/net/{gsub(/\(|\)/,"");print $3}'
Or
$ traceroute -m 2 8.8.8.8 | awk '/.net/{print $3}' | tr -d '()'
207.225.112.2
Sista ord
Att använda traceroute-verktyget för nätverksfelsökning kan göra din uppgift enklare och mer effektiv. Det kan ta några dagar för nybörjare att börja använda det här kommandot, men när du vant dig vid det här verktyget kommer du att upptäcka hur mycket du tycker om att använda det på Linux.
I hela inlägget har vi beskrivit många saker om traceroute-kommandot i Linux. Jag har försökt illustrera traceroute-kommandot så enkelt som möjligt. Jag hoppas att det här inlägget har varit användbart för dig; Om ja, dela det här inlägget med dina vänner och Linux-communityt. Du kan också skriva dina åsikter om det här inlägget i kommentarsfältet.
