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:

ANNONS FÖR VÅRA EGNA BÖCKER Demonerna på internet

[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.

Kommentarer

Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.

Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.