Konfigurera nätverket med systemd-networkd
Det finns ett universellt sätt att konfigurera nätverket på i nyare
Linuxutgåvor, och det är via systemd
. Detta fungerar för exempelvis Debian,
Ubuntu, Fedora-baserade utgåvor, Arch Linux med flera.
Arch Linux är en av få Linuxutgåvor som använder detta sättet som standard. Men
inom kort tror jag att fler utgåvor kommer att börja använda systemd-networkd,
av den anledningen att det redan finns stöd för det i Linux. De enskilda
Linuxutgåvorna behöver då inte bygga egna verktyg för att konfigurera nätverket.
Dessutom har det en annan fördel, nämligen att med systemd-networkd blir
Linuxutgåvorna mer enhetliga. Precis som systemd
har gjort så mycket annat i
Linux mer enhetligt mellan utgåvorna, kommer systemd-networkd fortsätta att
göra dem än mer enhetliga.
Jag kommer börja med att visa hur man byter från NetworkManager till systemd-networkd på Fedora. Processen är liknande för andra utgåvor med bara mindre skillnader.
För att byta måste vi börja med att avaktivera NetworkManager så att den inte startar automatiskt när datorn startas.
#> systemctl disable NetworkManager
...
#> systemctl disable network
...
Det är inte säkert att disable network
fungerar på just din dator. Beroende på
version finns det en rad nätverksskript som startas och stoppas med
network
. Får du ett felmeddelande om att Unit network.service does not exist
kan du ignorera det.
Därefter måste vi aktivera systemd-networkd. Detta gör vi med:
#> systemctl enable systemd-networkd
...
Vi måste även aktivera den inbyggda DNS-resolvern i systemd
samt ta bort den
gamla /etc/resolv.conf. Denna ska vi istället länka till resolvern i
systemd
.
#> systemctl enable systemd-resolved
...
#> systemctl start systemd-resolved
#> rm /etc/resolv.conf
#> ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Nu måste vi konfigurera nätverkskortet innan vi startar om datorn. Ta en titt på
ip addr
för att se vad ditt nätverkskort heter. I mitt fall är det ens3. Vi
skapar därefter en konfigurationsfil i /etc/systemd/network för kortet.
#> cd /etc/systemd/network
Skapa en fil som heter exempelvis ens3.network under förutsättning att ditt nätverkskort heter ens3. För att använda automatiskt konfiguration med DHCP ska innehållet se ut som nedan:
[Match]
Name=ens3
[Network]
DHCP=yes
Om du istället vill använda en statisk konfiguration kan filen se ut som nedan:
[Match]
Name=ens3
[Network]
Address=192.168.0.134/24
Address=2001:470:xxxx:1:xxxx:xx:xxxx:4e79/64
Gateway=192.168.0.1
Gateway=2001:470:xxxx:1::1
DNS=192.168.0.1
DNS=2001:470:xxxx:1::1
Nu kan du starta om datorn så att de nya inställningarna får effekt och NetworkManager släpper taget om nätverkskortet. Du bör dock endast starta om datorn om du har fysisk tillgång till den ifall någon konfiguration skulle visa sig vara felaktig.
För att läsa om de olika konfigurationsdirektiven som finns tillgängliga se
man systemd.network
.
För att se status för nätverkskorten använder vi kommandot
networkctl
.
$> networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 ens3 ether routable configured
2 links listed.
För att starta om nätverket när du gjort ändringar kör du kommandot:
#> systemctl restart systemd-networkd
Trådlöst nätverk med systemd-networkd
Instruktionerna här är testade på Fedora 29 och bör vara relativt enkla att anpassa för andra Linuxutgåvor.
Börja med att lista dina nätverkskort och deras status med
networkctl
.
#> networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 ens3 ether routable configured
3 wls9u1 wlan off unmanaged
3 links listed.
Här ser vi att wls9u1 är mitt trådlösa nätverkskort (eftersom det listas som wlan under TYPE).
Vi börjar med att konfigurera kortet precis som vi gjorde tidigare med det trådbundna nätverkskortet ens3. Här väljer jag att låta kortet konfigureras via DHCP. Skapa en fil /etc/systemd/network/wls9u1.network med följande innehåll (ändra filnamnet och Name till det som just ditt kort heter):
[Match]
Name=wls9u1
[Network]
DHCP=yes
Starta sedan om nätverket.
#> systemctl restart systemd-networkd
Nu är det dags att konfigurera det trådlösa kortet så att det kan koppla sig upp mot accesspunkten. Detta måste vi göra med ett tredjepartsverktyg kallat WPA Supplicant. Installerat programmet med:
#> dnf install wpa_supplicant
Om du använder en desktop-utgåva är chansen stor att paketet redan finns installerat.
Innan vi börjar använda WPA Supplicant måste vi skapa en enkel konfiguration. Chansen är stor att denna redan finns och i så fall behöver du inte gör något just nu med den filen. På min dator ser filen ut så här:
#> cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
Men däremot måste vi lägga till konfigurationen för ditt trådlösa nätverk, det
vill säga SSID och lösenord för nätverket. För att dölja lösenordet – så att
det inte står i klartext i filen – använder vi kommandot wpa_passprase
.
Kommandot genererar en lång sträng så att det riktiga lösenordet inte går att
läsa. Utdatan från programmet omdirigerar vi till filen
/etc/wpa_supplicant/wpa_supplicant.conf som vi nyss tittade på. I
nedanstående exempel är eyes_only mitt SSID och MyVerySecretPassword är
lösenordet till det nätverket.
Var noga med att använda två omdirigeringstecken – vi ska lägga till konfigurationen till wpa_supplicant.conf, inte skriva över den.
#> wpa_passphrase eyes_only MyVerySecretPassword >> \
> /etc/wpa_supplicant/wpa_supplicant.conf
Nu är det dags att öppna filen
/etc/wpa_supplicant/wpa_supplicant.conf. Vi måste nämligen radera en
kommentar. Som standard lägger wpa_passphrase
till det riktiga lösenord i
klartext som en kommentar.
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
ssid="eyes_only"
#psk="MyVerySecretPassword"
psk=a78e6f648315a810dfe3868c01086faa58c4c0e48253d3671cc2...
}
Radera alltså raden #psk=”MyVerySecretPassword” så att ingen kan se lösenordet till det trådlösa nätverk i klartext. Spara sedan filen.
Därefter måste vi specificera vårt nätverkskort i filen
/etc/sysconfig/wpa_supplicant. På raden som börjar med INTERFACES= ska du
lägga till nätverkskortet. Se nedan för ett exempel från min egna dator. Notera
att du måste lägga till -i
precis innan nätverkskortet.
INTERFACES="-iwls9u1"
Nu är det dags att starta om tjänsten WPA Supplicant med systemd
.
#> systemctl restart wpa_supplicant
Om du vill kontrollera huruvida uppkopplingen mot det trådlösa nätverket lyckades kan du köra:
#> systemctl status wpa_supplicant
... systemd[1]: Starting WPA supplicant...
... systemd[1]: Started WPA supplicant.
... wpa_supplicant[663]: Successfully initialized wpa_supplicant
... wpa_supplicant[663]: wls9u1: SME: Trying to authenticate with
... wpa_supplicant[663]: wls9u1: Trying to associate with f8:1a:6
... wpa_supplicant[663]: wls9u1: Associated with f8:1a:67:90:91:d
... wpa_supplicant[663]: wls9u1: CTRL-EVENT-SUBNET-STATUS-UPDATE
... wpa_supplicant[663]: wls9u1: WPA: Key negotiation completed w
... wpa_supplicant[663]: wls9u1: CTRL-EVENT-CONNECTED - Connectio
Du bör se något liknande om uppkopplingen lyckades.
Kontrollera gärna också med networkctl
.
#> networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 ens3 ether routable configured
3 wls9u1 wlan routable configured
3 links listed.
Under OPERATIONAL ser vi att båda nätverkskorten är ansluta och fungerar eftersom det står routable här. Skulle det trådlösa nätverkskortet inte ha lyckats koppla upp sig står det troligen no-carrier istället. Texten no-carrier visas även för trådbundna nätverk om du kopplar ur kabeln till nätverkskortet.
Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.
Relaterade artiklar
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Jenkins som ett alternativ till Ansible Tower
Ansible Tower kommer med en stor prislapp, speciellt för ett mindre företag eller en privatperson. AWX å andra sidan är helt fritt, men kräver numera Kubernetes. För den som vill automatisera sina Ansible Playbooks går det dock bra att använda Jenkins som en ersättning för Tower och AWX.
-
Hämta data från API:er med cURL och jq
Med cURL och jq går det att extrahera data från API:er direkt från kommandoraden. Jq är en JSON-tolkare och beskrivs av utvecklarna som sed och awk för JSON.
Senaste nyheterna och inläggen
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Sommarens skånska demopartyn
Årets sommar bjuder på två skånska demopartyn. Först ut är Reunion i Kvidinge den 28–30 juni. Därefter är det Pågadata i Örtofta den 9–11 augusti.
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
Utvalda artiklar
-
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.