Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

16 Praktiska exempel på Traceroute-kommando i Linux

Internet är ett stort nätverkssystem fullt av databaser, servrar, routrar och andra webbstrukturer. När du skriver en webbadress och trycker på enter-knappen på din webbläsare, ruttas den via din internetanslutning till värdadressen via webben. Mitt på destinationen, när ditt paket startar resan från datorn och når destinationsservern, färdas det mycket inne på 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 många fler angående dina internetpaket.

Ping vs Traceroute Command på Linux


Utan tvekan är Ping det mest använda och enkla nätverkskommandot som visar om destinationsadressen är live eller inte. Skillnaden mellan Ping och traceroute-kommandot är att Ping bara upptäcker om servern eller adressen är uppe eller inte bara genom att skicka ett paket och analysera signalen.

Medan traceroute-kommandot kan göra mycket mer nätverksfelsökning och bestämma nätverkets väg för att uppnå destinationsadressen. Traceroute-kommandot kan också förutsäga hur lång tid det tar att ladda en webbsida, upptäcka routrarna på webbadressen, värdnamnen, DNS-servernamnen och många fler.

När vi kör kommandot Ping på ett nätverkssystem, skickar kommandot automatiskt fyra paket med data till destinationsplatsen; och om en av dem når platsen, bestämmer kommandot att platsen är anslutningsbar, och det 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 berättar mer 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 tur-retur-tiden för data från varje router istället för att mäta den enda slutdestinationen. Den räknar också det totala antalet hopp på banan.

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. I 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-kommandot och mtr-kommandot. 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 diagnostiskt verktyg för enstaka nätverk som kombinerar traceroute- och ping-funktioner. MTR skriver ut några av traceroute-utgångarna 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 Command på 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 sökvägen till ditt datapaket använder traceroute-kommandot IP-huvudet, ICMP (Internet Control Message Protocol) och TTL- eller time-to-live-verktygen på ett nätverkssystem.

Att spåra internetpaketet kan vara mindre krångel 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ängden, källan och destinationen samt protokollet.

Traceroute-kommandot använder TCP-protokollet för att upprätta anslutningen. Och 8-bitars TTL-värdet förser oss också med TTL-räknarnumren som bestämmer det totala antalet möten mellan datapaketet och destinationen via routrarna. Paketet får ett timeout-fel när TTL-värdet är ett. Och ICMP skickar ett meddelande från källan till paketets destination som säkerställer timeout.

Traceroute-syntaxer på 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 exempel på traceroute-kommandot som vi kommer att lista nedan.

Här är kommandoformatet:

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 visar den en lista med gateways.
  • -I, –ICMP: Som en sond specificeras ICMP ECHO.
  • -m, –max-hop=NUM: Ställer in antalet hopp; standard är 64.
  • -M, –type=METOD: Traceroutes utförs med antingen ICMP eller UDP; standardmetoden är UDP.
  • -p, –port=PORT: Den definierar nätverksporten; standard är 33434.
  • -q, –tries=NUM: NUM sondpaket kommer att vidarebefordras per hopp.
  • –resolve-hostnames: Du kan använda den här syntaxen för att fixa värdnamnen.
  • -t, –tos=NUM: TOS eller typen av tjänst 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: Den visar användningen i en kort text.
  • -V, –version: Skriver ut den aktuella versionen av traceroute-kommandot på Linux.

Installera Traceroute-kommandot i Linux


Installationsprocessen för traceroute-kommandot i Linux-distributioner är lätt. I Windows- och Mac-system är traceroute-verktyget förinstallerat. I Linux måste du installera det först. Här har jag listat installationskommandon för Ubuntu/Debian, RedHat, Fedora och Arch Linux-system.

Installera traceroute-kommandot på 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 traceroute-versionen för att säkerställa att verktyget har installerats på din Linux-maskin.

$ traceroute --version

Exempel på Traceroute-kommandot i Linux


Vi kommer nu att se några användbara och praktiska exempel på traceroute-kommandot som du bör lära dig. Traceroute-kommandot fungerar smidigt med alla större Linux-distributioner på både skrivbord och server.

1. Kör Traceroute för att få en överblick


Det nedan nämnda traceroute-kommandot visar oss IP-adressen, det totala antalet hopp i hela vägen, den totala varaktigheten för att upprätta anslutningen och packarnas storlek.

traceroute ubuntupit.com

2. Dölja enhetsnamn


Om du vill dölja namnet på nätverksenheterna på utgången av traceroute-kommandot, lägg till tecknet -n på kommandot.

traceroute -n  ubuntupit.com

3. Ställa in Traceroute Timeout-värdet


Trots att du har ett standardvärde för timeout för traceroute-kommandot, kan du manuellt ställa in timeoutvärdet på egen hand. Det nedan nämnda traceroute-kommandot 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 traceroute-kommandot på Linux, kan du använda kommandot nedan.

traceroute -q 1 ubuntupit.com

5. Ställa in det initiala TTL-värdet


Genom att använda -f-flaggans syntax på traceroute-kommandot kan du ställa in TTL-värdet eller time-to-live-verktygsvärdet på Linux.

traceroute -f 11 ubuntupit.com

6. Lagra resultatet i en textfil


Du kan exportera resultaten av traceroute-kommandot till en textfil genom kommandot nedan på Linux.

traceroute google.com > results.txt

7. Spåra rutten med IPv6


Om din internetanslutning har en IPv6-inställning kan du använda det nedan nämnda traceroute-kommandot 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 det nedan nämnda traceroute-kommandot på 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 utföra kommandot ifconfig.

$ ifconfig

10. Ställ in svarsväntetiden


För att ändra standardsvarsväntetiden för traceroute-kommandot kan du använda en -w-flagga på traceroute-kommandot på Linux. Denna lilla justering skulle ge ditt datapaket att resa lite mer 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ärdmappningen på Linux, använd ett tecken på 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 det maximala antalet hopp


Som standard är det genomsnittliga antalet hopp för traceroute-kommandot 30. Du kan ändra hoppvärdet på traceroute-kommandot genom att lägga till hoppvärdet med en -m-flagga på kommandot.

traceroute -m 7 google.com 

13. Fragmentera inte paketet


Om du inte vill fragmentera datapaketet på ditt Linux-system, använd flaggan -F på ditt traceroute-kommando.

$ traceroute -F google.com

14. Led paketet genom porten


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ätverksporten 33434. Om du behöver ändra nätverksporten kan du använda -p-tecknet på traceroute-kommandot på Linux.

$ traceroute  -p 20292 google.com

16. Få hjälp


Om du behöver mer hjälp och manualer för traceroute-kommandot, vänligen kör de nedan nämnda kommandona på skalet. Manualerna kommer definitivt att hjälpa dig att komma igång med verktyget.

traceroute --help  
man traceroute 

Problem du kan stöta på när du använder Traceroute-kommandot


När du använder traceroute-kommandot i Linux kan du stöta på vissa problem om du är ny. Här har vi värvat några av de vanligaste problemen för traceroute-kommandot av olika användare från Linux-communityt.

1. Problem med -n-flaggan i Traceroute Command på Linux


Tidigare har vi sett att du kan använda en n-flagga med kommandot traceroute i Linux för att dölja enhetsnamnet. Om du stöter på något problem när du använder flaggan n på ditt skal och det ger dig ett ogiltigt alternativ, måste du se till att du har rätt traceroute-verktyg installerat på ditt system. Du kan också prova att utföra de nedan nämnda kommandona för 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: Traceroute-kommandoproblem


Om traceroute-verktyget inte kan autentiseras i 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 det nedan nämnda kommandot sudo update.

sudo apt-get install traceroute
sudo apt-get update

Du kan sedan utföra ditt önskade traceroute-kommando, och förhoppningsvis kommer dina problem att lösas.

3. Nyare versioner av Traceroute kan ha problem


I vissa fall, i 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 sökvägen för kommandot, kan du ställas inför 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 stöter på det här problemet, starta om din enhet, kör kommandot korrekt och se till att ditt kommando inte har några skrivfel.

~$ 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 i Linux


Om du stöter på något problem när du installerar traceroute-kommandot på din Linux-maskin, se till att sökvägen du tilldelar installationen är tillgänglig för paketinstallation. Du måste också se till att du har superanvändarbehörighet att installera det verktyget. I de flesta fall fortsätter användarna att försöka installera traceroute-kommandot i en låst katalog och får ett felmeddelande om nekad behörighet.

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 de nedan nämnda kommandouppsättningarna för att lösa detta problem. 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 parenteser () runt IP-adress på Traceroute i Linux


Ibland kan du få den utgående IP-adressen inom den första parentesen eller inom parentesen i terminalskalet.

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 parenteserna från utgången, vänligen kör nedanstående kommando.

$ 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

Slutord


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örjaranvändarna att komma igång med det här kommandot, men när du väl är van 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 kommandot traceroute 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 ner dina åsikter om det här inlägget i kommentarsfältet.