Odpravljanje težav z omrežjem: ping, traceroute, mtr, dig in curl

Linux Branje: 3 min

Če spletna stran ali strežnik ni dosegljiv, je počasen ali ne deluje le z nekaterih mest, lahko z nekaj ukazi hitro ugotoviš, kje je napaka: v razreševanju imen (DNS), na poti v omrežju ali na samem strežniku. Ukazi tečejo v terminalu v Linuxu in macOS; ustreznike za Windows posebej označimo.

ping: ali je računalnik dosegljiv?

ping -c 10 example.hu

-c 10 ustavi merjenje po desetih paketih (v sistemu Windows ping privzeto pošlje štiri). Iz zbirne vrstice je mogoče razbrati izgubo paketov (packet loss) in odzivni čas.

  • Če ping odgovori, je računalnik v omrežju dosegljiv.
  • Če ne odgovori, to še ne pomeni, da strežnik ne deluje: požarni zid številnih strežnikov prepoveduje pakete ping (ICMP). Takrat storitev preveri s spodnjim ukazom curl ali nc.

dig: ali domena kaže na pravi naslov IP?

Po selitvi domene ali zamenjavi imenskih strežnikov je najpogostejša napaka, da domena še kaže na stari naslov IP.

dig +short example.hu A
dig +short www.example.hu A
dig +short example.hu MX
dig +short example.hu NS

Odgovor lahko poizveš tudi pri določenem strežniku DNS, tako ugotoviš, ali je sprememba že vidna povsod:

dig +short example.hu A @1.1.1.1
dig +short example.hu A @8.8.8.8

Paket z dig je v AlmaLinuxu bind-utils, v Ubuntuju in Debianu dnsutils. Razlago izpisa ter korake +trace in preverjanja DNSSEC opisuje članek Poizvedbe DNS z ukazom dig. V sistemu Windows podobno poizveš z ukazom nslookup example.hu. O širjenju sprememb DNS preberi v članku Kaj je širjenje DNS?.

traceroute in mtr: kje se na poti zatakne?

traceroute (v sistemu Windows tracert) izpiše pot paketov do strežnika, po postajah (hop).

traceroute example.hu

mtr združuje ping in traceroute: na vsako postajo pošlje veliko paketov, zato je vidna tudi začasna izguba paketov. Za prijavo napake priporočamo tega.

mtr -rwc 100 example.hu
  • -r: teče v načinu poročila (report) in na koncu izpiše rezultat,
  • -w: ne krajša imen gostiteljev,
  • -c 100: na vsako postajo pošlje 100 paketov (pribl. minuto in pol).

Namestitev: sudo dnf install mtr ali sudo apt install mtr-tiny. Na cloud image AlmaLinux 10 v preizkusu ni bil nameščen niti traceroute (sudo dnf install traceroute), le podoben, a preprostejši tracepath; v Debianu 12 je bil traceroute na voljo, v Ubuntu 24.04 pa mtr in tracepath. V sistemu Windows podoben rezultat da ukaz pathping example.hu ali program WinMTR.

Razlaga rezultata: če je pri vmesni postaji vidna izguba paketov, pri naslednjih postajah pa ne več, to ni napaka: veliko usmerjevalnikov na merilne pakete odgovarja le z nizko prioriteto. Na resnično težavo kaže, če se izguba paketov od neke točke naprej pojavi pri vseh nadaljnjih postajah, tudi na cilju.

ss: ali storitev na strežniku posluša?

Če se lahko prijaviš na strežnik, poglej, na katerih vratih sprejema povezave:

sudo ss -tlnp

V izpisu poišči vrata storitve (npr. :80, :443, :22, :3306). Če vrat ni na seznamu, storitev ne teče; preveri jo z ukazom systemctl status (glej: Upravljanje storitev z ukazom systemctl). Če vrata poslušajo le na naslovu 127.0.0.1, od zunaj niso dosegljiva.

nc in curl: ali so vrata dosegljiva od zunaj?

Dosegljivost poljubnih vrat TCP preveriš z ukazom nc:

nc -zv example.hu 443
nc -zv mail.example.hu 587

Paket z nc je v AlmaLinuxu nmap-ncat, v Ubuntuju in Debianu netcat-openbsd. Če storitev na strežniku posluša, od zunaj pa ni dosegljiva, vrata verjetno zapira požarni zid (glej: Kako nastavim požarni zid na svojem VPS?).

Pri spletnem strežniku curl pokaže tudi odgovor HTTP:

curl -I https://example.hu

-I zahteva le glave; prva vrstica je statusna koda HTTP (npr. HTTP/2 200 ali HTTP/1.1 500). O pomenu kod preberi v članku Napake HTTP in statusne kode. S stikalom -v so vidne tudi podrobnosti povezovanja in pogajanja SSL.

Preizkus spletne strani pred zamenjavo DNS

Ob selitvi je koristno, če stran na novem strežniku lahko preizkusiš še pred spremembo DNS. S stikalom --resolve lahko navedeš, na kateri naslov IP naj se curl poveže, ime domene pa pošlje nespremenjeno:

curl -I --resolve example.hu:443:203.0.113.10 https://example.hu

Kaj poslati podpori?

Če prijaviš omrežno napako, nam za hitro preiskavo pošlji:

  • svoj javni naslov IP (s katerega se napaka pojavlja),
  • natančen čas napake in ali je stalna ali občasna,
  • izpis mtr -rwc 100 <strežnik> s svojega računalnika (v sistemu Windows rezultat pathping ali WinMTR),
  • če se lahko prijaviš na strežnik, tudi izpis mtr -rwc 100 <tvoj naslov IP> s strežnika, ker se pot nazaj lahko razlikuje.
Nazaj: Linux – članki (76)