Maak verbinding met Wi-Fi vanaf terminal op Ubuntu 18.04/20.04 met WPA Supplicant

In deze tutorial gaan we leren hoe verbinding te maken met Wi-Fi netwerk vanaf de opdrachtregel op Ubuntu 18.04/20.04 server en desktop met behulp van wpa_supplicant. In een modern draadloos thuisnetwerk wordt de communicatie beschermd met WPA-PSK (vooraf gedeelde sleutel) in tegenstelling tot WPA-Enterprise, dat is ontworpen voor bedrijfsnetwerken. WPA-PSK is ook bekend als WPA-Personal. wpa_supplicant is een implementatie van de WPA supplicant component. Een supplicant in wireless LAN is een client software geinstalleerd op de computer van de eindgebruiker die geauthenticeerd moet worden om toegang te krijgen tot een netwerk.

Stap 1: Vind de naam van uw draadloze interface en draadloos netwerk

Run iwconfig commando om de naam van uw draadloze interface te vinden.

iwconfig

wlan0 was vroeger een gebruikelijke naam voor de draadloze netwerkinterface op Linux-systemen zonder Systemd. Omdat Ubuntu Systemd gebruikt, zult u merken dat uw draadloze netwerkinterface een naam heeft zoals wlp4s0. U kunt ook zien dat het op dit moment niet is gekoppeld aan een toegangspunt.

ubuntu server connect to wifi terminal

Als uw draadloze interface niet wordt weergegeven, moet u deze misschien met het volgende commando tevoorschijn halen.

sudo ifconfig wlp4s0 up

Vind vervolgens uw draadloze netwerknaam door netwerken in de buurt te scannen met het onderstaande commando. Vervang wlp4s0 door de naam van je eigen draadloze interface. ESSID is de identificatie van de netwerknaam.

sudo iwlist wlp4s0 scan | grep ESSID

ubuntu 19.04 connect to wifi command line wpa supplicant

Step 2: Verbinding maken met Wi-Fi-netwerk met WPA_Supplicant

Installeer nu wpa_supplicant op Ubuntu 18.04/20.04 vanuit de standaard software repository.

sudo apt install wpasupplicant

We moeten een bestand met de naam wpa_supplicant.conf maken met behulp van het wpa_passphrase hulpprogramma. wpa_supplicant.conf is het configuratiebestand dat alle netwerken beschrijft waarmee de gebruiker wil dat de computer verbinding maakt. Voer de volgende opdracht uit om dit bestand te maken. Vervang de ESSID en Wi-Fi-wachtzin door uw eigen.

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

wpa_passphrase

Merk op dat ik in de bovenstaande schermafbeelding mijn ESSID heb omwikkeld met dubbele aanhalingstekens, omdat mijn ESSID een spatie bevat.

De uitvoer van het wpa_passphrase commando wordt naar tee gepiped, en vervolgens naar het /etc/wpa_supplicant.conf bestand geschreven. Gebruik nu het volgende commando om uw draadloze kaart te verbinden met een draadloos toegangspunt.

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0

De volgende uitvoer geeft aan dat uw draadloze kaart met succes is verbonden met een toegangspunt.

Successfully initialized wpa_supplicantwlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)wlp4s0: Associated with c5:4a:21:53:ac:ebwlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed 

Aantekening: als u Ubuntu desktop editie gebruikt, dan moet u Network Manager stoppen met het volgende commando, anders zal het verbindingsprobleem veroorzaken wanneer u wpa_supplicant gebruikt.

sudo systemctl stop NetworkManager

En schakel NeworkManager auto-start bij het opstarten uit door het volgende commando uit te voeren.

sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

Bestandaard draait wpa_supplicant op de voorgrond. Als de verbinding is voltooid, open dan een ander terminalvenster en voer

iwconfig

U kunt zien dat de draadloze interface nu is gekoppeld aan een toegangspunt.

Enable wifi on ubuntu using terminal command

U kunt CTRL+C om het huidige wpa_supplicant proces te stoppen en het op de achtergrond te laten draaien door de -B vlag toe te voegen.

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

Hoewel we geauthenticeerd zijn en verbonden met het draadloze netwerk, maar we hebben nog geen IP adres. Om een privaat IP-adres te verkrijgen van de DHCP-server, gebruikt u het volgende commando:

sudo dhclient wlp4s0

Nu heeft uw draadloze interface een privaat IP-adres, dat kan worden weergegeven met:

ip addr show wlp4s0

ubuntu dhclient obtain private ip address

Nu kunt u toegang krijgen tot het internet. Om het privé-IP-adres vrij te geven, voert u

sudo dhclient wlp4s0 -r

Verbinding maken met verborgen draadloos netwerk

Als uw draadloze router geen ESSID uitzendt, moet u de volgende regel toevoegen in /etc/wpa_supplicant.conf bestand.

scan_ssid=1

zoals hieronder:

network={ ssid="LinuxBabe.Com Network" #psk="12345qwert" psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195 scan_ssid=1}

Stap 3: Automatisch verbinding maken bij opstarten

Om automatisch verbinding te maken met het draadloze netwerk bij het opstarten, moeten we het wpa_supplicant.service bestand bewerken. Het is een goed idee om het bestand te kopiëren van de /lib/systemd/system/ directory naar de /etc/systemd/system/ directory, en dan de inhoud van het bestand te bewerken, omdat we niet willen dat een nieuwere versie van wpa_supplicant onze wijzigingen overschrijft.

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

Bewerk het bestand met een command-line tekst editor, zoals Nano.

sudo nano /etc/systemd/system/wpa_supplicant.service

Vind de volgende regel.

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

Verander het naar het volgende. Hier hebben we het configuratiebestand en de naam van de draadloze interface toegevoegd aan het ExecStart commando.

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0

Het wordt aanbevolen om altijd te proberen wpa_supplicant opnieuw te starten wanneer er een fout wordt gedetecteerd. Voeg het volgende toe direct onder de ExecStart regel.

Restart=always

Als u de volgende regel in dit bestand kunt vinden, becommentarieer deze dan (Voeg het # teken toe aan het begin van de regel).

Alias=dbus-fi.w1.wpa_supplicant1.service

Bewaar en sluit het bestand. (Om een bestand op te slaan in Nano tekst editor, druk op Ctrl+O, druk dan op Enter om te bevestigen. Om af te sluiten, druk op Ctrl+X.) Herlaad vervolgens systemd.

sudo systemctl daemon-reload

Schakel wpa_supplicant service in om te starten tijdens het opstarten.

sudo systemctl enable wpa_supplicant.service

We moeten ook dhclient starten tijdens het opstarten om een privé IP adres te verkrijgen van de DHCP server. Dit kan worden bereikt door een systemd service unit aan te maken voor dhclient.

sudo nano /etc/systemd/system/dhclient.service

Plaats de volgende tekst in het bestand.

Description= DHCP ClientBefore=network.targetAfter=wpa_supplicant.serviceType=forkingExecStart=/sbin/dhclient wlp4s0 -vExecStop=/sbin/dhclient wlp4s0 -rRestart=always WantedBy=multi-user.target

Save en sluit het bestand. Schakel vervolgens deze service in.

sudo systemctl enable dhclient.service

Hoe verkrijg ik een statisch IP-adres

Als u een statisch IP-adres wilt verkrijgen, dan dient u dhclient.service uit te schakelen.

sudo systemctl disable dhclient.service

We moeten netplan gebruiken om een statisch IP adres te configureren op Ubuntu 18.04/20.04. Maak een configuratiebestand aan onder /etc/netplan/.

sudo nano /etc/netplan/10-wifi.yaml

Voeg de volgende regels toe aan dit bestand. Vervang 192.168.0.102 door het IP-adres van uw voorkeur. Wees voorzichtig met de inspringing. Een extra spatie zou de configuratie ongeldig maken.

network: ethernets: wlp4s0: dhcp4: no addresses: gateway4: 192.168.0.1 version: 2

Opslaan en sluiten van het bestand. Pas dan de configuraties toe.

sudo netplan apply

U kunt ook de --debug optie aanzetten als het niet werkt zoals verwacht.

sudo netplan --debug apply

Als er andere .yaml bestanden onder /etc/netplan/ directory staan, dan zal netplan automatisch configuraties uit verschillende bestanden samenvoegen. netplan gebruikt systemd-networkd als de backend netwerk renderer. Het wordt aanbevolen om de wpa_supplicant.service te configureren voordat systemd-networkd.service wordt uitgevoerd, zodat het systeem zich eerst met een Wi-Fi-toegangspunt zal associëren, en dan een privé IP-adres zal verkrijgen.

sudo nano /etc/systemd/system/wpa_supplicant.service

Vind de volgende regel.

Before=network.target

Verander deze in:

Before=network.target systemd-networkd.service

Bewaar en sluit het bestand.

Een andere manier om een statisch IP adres te verkrijgen is door in te loggen op de management interface van uw router en een statisch IP adres toe te wijzen aan het MAC adres van uw draadloze kaart, als uw router deze functie ondersteunt.

Een Hostnaam gebruiken om toegang te krijgen tot diensten op Ubuntu

Eigenlijk hoeft u geen statisch IP adres te verkrijgen voor uw Ubuntu box. Ubuntu kan mDNS (Multicast DNS) gebruiken om zijn hostnaam aan te kondigen op het lokale netwerk en clients kunnen toegang krijgen tot de diensten op uw Ubuntu box met die hostnaam. Deze hostnaam kan altijd worden omgezet naar het IP adres van uw Ubuntu box, zelfs als het IP adres verandert.

Om mDNS te gebruiken, moet u avahi-daemon installeren, dat is een open-source implementatie van mDNS/DNS-SD.

sudo apt install avahi-daemon

Start de service.

sudo systemctl start avahi-daemon

Schakel auto-start in bij het opstarten.

sudo systemctl enable avahi-daemon

Avahi-daemon luistert op UDP 5353, dus u moet deze poort openen in de firewall. Als u UFW gebruikt, voer dan het volgende commando uit.

sudo ufw allow 5353/udp

Dan moet u een unieke hostnaam instellen voor uw Ubuntu box met het hostnamectl commando. Vervang ubuntubox door de hostnaam van uw voorkeur, die niet al bezet mag zijn door andere apparaten in het lokale netwerk.

sudo hostnamectl set-hostname ubuntubox

Nu herstart u avahi-daemon.

sudo systemctl restart avahi-daemon

Als u de status controleert met

systemctl status avahi-daemon

kunt u de mDNS hostnaam zien, die eindigt op het .local domein.

avahi-daemon mdns hostname

Op de clientcomputer moet u ook een mDNS/DNS-SD-software installeren.

  • Linux-gebruikers moeten avahi-daemon installeren.
  • Windows-gebruikers moeten de Bonjour-service inschakelen door ofwel de Bonjour-afdrukservice te installeren of iTunes te installeren.
  • Op macOS is Bonjour voorgeïnstalleerd.

Nu kunt u toegang krijgen tot diensten door gebruik te maken van de ubuntubox.local hostnaam, waardoor u niet langer het IP-adres hoeft te controleren en in te typen.

Wifi deblokkeren op Raspberry Pi

Het Ubuntu ARM OS voor Raspberry Pi blokkeert standaard de draadloze interface. U moet het deblokkeren met:

sudo rfkill unblock wifi

Om het te deblokkeren tijdens het opstarten, maakt u een systemd service unit.

sudo nano /etc/systemd/system/unblock-wifi.service

Voeg er de volgende regels aan toe.

Description=RFKill Unblock WiFi DevicesRequires=wpa_supplicant.serviceAfter=wpa_supplicant.serviceType=oneshotExecStart=/usr/sbin/rfkill unblock wifiExecStop=RemainAfterExit=yesWantedBy=multi-user.target

Bewaar en sluit het bestand. Schakel auto-start bij het opstarten in.

sudo systemctl enable unblock-wifi

Ik vond dat de unblock-wifi.service moet draaien nadat de wpa_supplicant.service is gestart, anders kan het wifi niet deblokkeren. Merk op dat als je een desktop omgeving hebt geïnstalleerd, er waarschijnlijk een netwerkbeheerder draait die de verbinding kan verstoren. Die moet je uitschakelen. Ik gebruik bijvoorbeeld de lichtgewicht LXQT desktop omgeving op Raspberry Pi (sudo apt install lubuntu-desktop) en ik moet connman.service en NetworkManager.service uitschakelen.

sudo systemctl disable connman.service NetworkManager.service

Meerdere Wi-Fi netwerken

Het /etc/wpa_supplicant.conf configuratiebestand kan meerdere Wi-Fi netwerken bevatten. wpa_supplicant zal automatisch het beste netwerk selecteren, gebaseerd op de volgorde van de netwerkblokken in het configuratiebestand, het netwerkbeveiligingsniveau en de signaalsterkte.

Om een tweede Wi-Fi-netwerk toe te voegen, voert u

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee -a /etc/wpa_supplicant.conf

Merk op dat u de -a optie moet gebruiken met het tee commando, dat het nieuwe Wi-Fi-netwerk aan het bestand zal toevoegen, in plaats van de originele inhoud te verwijderen.

Wrapping Up

Ik hoop dat deze tutorial u heeft geholpen om Ubuntu 18.04/20.04 te verbinden met een Wi-Fi-netwerk vanaf de commandoregel met WPA Supplicant. Zoals altijd, als je deze post nuttig vond, schrijf je dan in op onze gratis nieuwsbrief om meer tips en trucs te krijgen 🙂

Beoordeel deze tutorial

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *