====== Connect to a wireless network with wpa_supplicant ====== If your usual GUI program to connect to wifi networks, e.g. [[:admin:linux:gui:wicd]] or [[:admin:linux:networkmanager|NetworkManager]] is not available, you can connect to a wireless network by manually scanning and editing wpa_supplicant's config files. //see also: [[https://wiki.archlinux.org/index.php/WPA_supplicant|Arch Wiki on wpa_supplicant]]// ===== one-liner to connect with known SSID and passphrase ===== Run this on a root shell. ''sudo'' will not suffice: wpa_supplicant -B -i INTERFACE -c <(wpa_passphrase MYSSID PASSPHRASE) Find wireless interfaces with ''iw list''. ===== systemd-networkd ===== [Match] Name=INTERFACE [Network] DHCP=yes ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 fast_reauth=1 network={ ssid="MYSSID" psk="MYSUPERSECUREPASSWORD" priority=1 } start that shit up: systemctl enable systemd-networkd systemctl enable wpa_supplicant@INTERFACE systemctl start systemd-networkd systemctl start wpa_supplicant@INTERFACE ===== Troubleshooting ===== ==== I connected to the WLAN, but still can't access the network ==== Do you have an IP address? Check this with ''ip a''. If not, you have to obtain an IP via ''dhcpcd INTERFACE'' or set it manually with ''ip a add ADDRESS dev INTERFACE''. Could be that your ''/etc/resolv.conf'' doesn't list any DNS servers. Either add this: nameserver 127.0.0.1 (replace ''127.0.0.1'' with the IP address of your router/DNS server) or use ''systemd-resolved'': mv /etc/resolv.conf /etc/resolv.conf.before-the-systemd-nation-attacked systemctl enable --now systemd-resolved systemd-resolved populates the ''/etc/resolv.conf'' with known DNS servers automagically, but you can still add them manually: … DNS=1.2.3.4 FallbackDNS=5.6.7.8 …