På denne siden

Dette kapittelet dekker de essensielle verktøyene for å sjekke og jobbe med et nettverk. Nesten alle fungerer identisk på tvers av distroer.

ping — er verten tilgjengelig?

ping sender ICMP-ekko-pakker til en vert og rapporterer svar og svarstid. Det er det første verktøyet du bruker når noe er utilgjengelig.

$ ping -c 3 1.1.1.1
64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=8.7 ms
3 packets transmitted, 3 received, 0% packet loss

-c begrenser antall pings; uten den kjører ping for alltid (stopp med Ctrl+C). Du kan også pinge et domenenavn:

$ ping -c 3 example.com

ip — adresser, ruter, grensesnitt

ip er den moderne erstatteren for de gamle ifconfig og route. Den har underkommandoer for ulike aspekter av nettverk.

Vis adressene dine (ip a for kort):

$ ip addr
1: lo: <LOOPBACK,UP> ...
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,UP> ...
    inet 10.0.0.5/24 brd 10.0.0.255 ...

Vis grensesnitt (ip link):

$ ip link
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...

Vis rutetabellen (ip r):

$ ip route
default via 10.0.0.1 dev eth0
10.0.0.0/24 dev eth0 ...

default via ...-linjen er gatewayen din — ruteren som sender trafikk til internett.

curl — overfør data fra URL-er

curl er sveitserkniven for HTTP. Skriv ut innholdet på en URL i terminalen:

$ curl https://example.com
<!doctype html>...

Lagre til en fil med -o:

$ curl -o page.html https://example.com

Hent bare svarhodene med -I:

$ curl -I https://example.com
HTTP/2 200
content-type: text/html

Kjør stille med -s (nyttig i skript):

$ curl -s -o page.html https://example.com

Grafisk alternativ: en hvilken som helst nettleser laster ned det samme innholdet, men curl er skriptbart og fungerer på servere uten GUI.

wget — last ned filer

wget laster ned filer og er bedre egnet enn curl for enkle nedlastinger av store filer (den gjenopptar avbrutte nedlastinger med -c).

$ wget https://example.com/file.tar.gz
$ wget -c https://example.com/file.tar.gz   # fortsett en avbrutt nedlasting

wget er forhåndsinstallert på Ubuntu- og Fedora-skrivebord; på Arch installerer du det med sudo pacman -S wget.

dig — DNS-oppslag

dig spør DNS-servere og viser postene. Det er en del av bind9-verktøyene; på Ubuntu installerer du bind9-dnsutils hvis det mangler, på Fedora følger det med bind-utils.

Kort svar (bare IP-adressene):

$ dig +short example.com
93.184.215.14

Full utdata med alle postdetaljer:

$ dig example.com
;; ->>HEADER<<- opcode: QUERY, status: NOERROR ...
;example.com.            IN    A

Spør en bestemt DNS-server med @:

$ dig @1.1.1.1 +short example.com

ss — sockets og porter

ss viser nettverkssockets — hvilke porter som er åpne, og hva som er tilkoblet. Den erstatter det gamle netstat.

Vis TCP-sockets som lytter, med prosessnavn:

$ ss -lntp
State   Recv-Q Send-Q Local Address:Port  Peer Address:Port  Process
LISTEN  0      4096   127.0.0.53:53       0.0.0.0:*         users:(("systemd-resolve",...))
Flagg Betydning
-l bare sockets som lytter
-t bare TCP
-u bare UDP
-n numerisk (ingen navneoppslag)
-p vis hvilken prosess som eier den

For å se om en tjeneste lytter på port 443:

$ ss -lntp | grep :443

traceroute — hvor brytes stien?

Når ping lykkes, men et nettsted er tregt eller utilgjengelig, viser traceroute stien en pakke tar og hvor lang tid hvert hopp trenger:

$ traceroute example.com

Hopper som timeouter (* * *) er ofte brannmurer som dropper pakker — ikke nødvendigvis et problem.

nmcli — nettverksinnstillinger fra terminalen

nmcli snakker med NetworkManager, nettverkstjenesten de fleste skrivebord bruker. På en headless-server er det måten å håndtere Wi-Fi og tilkoblinger.

$ nmcli device status
$ nmcli device wifi list        # skann etter Wi-Fi-nettverk

Grafisk alternativ: skrivebordets nettverksinnstillinger (Innstillinger → Wi-Fi / Nettverk) gjør det samme for en GUI-bruker.

En merknad om brannmurer

Hvis du kjører en server, husk at distroen din har en brannmur: Ubuntu har ufw (av til den aktiveres), Fedora har firewalld (aktiv som standard). «Serveren min kjører, men jeg når den ikke utenfra» er veldig ofte en brannmurregel. Konfigurering av brannmurer er utenfor dette kapittelets omfang — se brannmurdelen av distroens dokumentasjon.