Mustand: sisu ei ole veel tehniliselt ega keeleliselt täielikult kontrollitud ega toimetatud.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Võrgu põhitööriistad, mis kuulub osasse Osa II: Süsteemi pilt ja haldus.

Võrgu põhitööriistad

Selles peatükis vaatame väikest võrgu baasi, mis aitab kiiresti aru saada, kas probleem on käsus, failis või võrgus.

Loogika

Võrguprobleemi puhul tasub küsimus jagada väikesteks osadeks:

  1. kas nimi või host üldse vastab
  2. kas HTTP-teenus vastab
  3. millised võrguliidesed masinas on
  4. kas mõni port üldse kuulab

Need küsimused ei lahenda kõiki võrguvigu, aga annavad väga kiiresti esimese pildi.

Kiirspikker

  • ping kontrollib, kas host vastab ICMP-le
  • curl -I küsib veebiserverilt ainult päised
  • ip a näitab Linuxis võrguliideseid
  • ifconfig on levinud alternatiiv macOS-is ja BSD-s
  • ss -ltn näitab Linuxis kuulavaid TCP-porte
  • lsof -iTCP -sTCP:LISTEN -n -P on macOS-is kasulik kuulavate portide vaade

Käivita need käsud

Linuxis:


ping -c 4 example.com
curl -I https://example.com/
ip a
ss -ltn

macOS-is:


ping -c 4 example.com
curl -I https://example.com/
ifconfig
lsof -iTCP -sTCP:LISTEN -n -P

ping

ping on kiire kontrollküsimus:

“Kas see nimi või host üldse vastab?”

Näide:


ping -c 4 example.com

Oluline märkus:

  • kõik hostid ei vasta ping-ile
  • kui ping ei vasta, ei tähenda see alati, et veeb või teenus oleks maas

Seetõttu ei tasu ping-i võtta viimase tõena, vaid esimese vihjena.

curl -I

Kui sind huvitab veebiteenuse eluolu, siis curl -I on tihti kasulikum kui ping.

Näide:


curl -I https://example.com/

See näitab:

  • kas HTTP või HTTPS vastab
  • mis olekukood tuleb
  • kas server teeb ümbersuunamise

Kui curl -I töötab, aga ping mitte, siis on teenus sageli ikkagi täiesti elus.

ip a ja ifconfig

Need käsud aitavad vaadata:

  • millised liidesed masinas on
  • kas mõnel liidesel on aadress
  • kas masin paistab olevat üldse võrku ühendatud

Linuxis on tavalisem:


ip a

macOS-is ja mõnes vanemas süsteemis:


ifconfig

Siin ei pea algaja esialgu kõike mõistma. Esimene kasulik küsimus on lihtsalt:

  • kas näen mõnd aktiivset liidest
  • kas seal on IP-aadress

ss -ltn ja kuulavad pordid

Kui probleem on selles, et “teenus ei vasta”, siis järgmine küsimus on:

“Kas see teenus üldse kuulab pordi peal?”

Linuxis:


ss -ltn

macOS-is praktiline vaste:


lsof -iTCP -sTCP:LISTEN -n -P

See aitab näha, kas mõni protsess kuulab näiteks porte nagu:

  • 22 SSH jaoks
  • 80 HTTP jaoks
  • 443 HTTPS jaoks
  • mõni rakenduse enda port

Väike kontrolljärjekord

Kui võrgus midagi ei tööta, siis liigu näiteks nii:

  1. proovi curl -I, kas teenus vastab
  2. proovi ping, kas nimi elab
  3. vaata ip a või ifconfig, kas masinal on üldse mõistlik liides
  4. vaata ss -ltn või alternatiiviga, kas kohalik teenus kuulab

See aitab eristada:

  • nimeprobleemi
  • ühenduseprobleemi
  • kohaliku teenuseprobleemi

Minitest

  1. Tee curl -I päring aadressile https://example.com/.
  2. Vaata, milline käsk näitab sinu süsteemis võrguliideseid.
  3. Vaata, kas sinu masinas on mõni kuulav TCP-port.
  4. Pane ühe lausega kirja, miks ping ei anna alati täielikku vastust võrgu toimimise kohta.