3.5 KiB
publish, permalink, title, created, modified, tags, cssclasses
| publish | permalink | title | created | modified | tags | cssclasses | |||
|---|---|---|---|---|---|---|---|---|---|
| true | /os/network | Network | 2026-01-29T14:15:15.157-07:00 | 2026-02-05T12:18:10.583-07:00 |
|
Network configuration using NetworkManager with iwd backend, systemd-resolved for DNS, and Tailscale for mesh networking.
Architecture
My setup:
- NetworkManager — Connection management
- iwd — WiFi backend (replaces wpa_supplicant)
- systemd-resolved — DNS resolution
- dhcpcd — Disabled (NetworkManager handles DHCP)
Disable dhcpcd
NetworkManager handles DHCP itself, so dhcpcd is not needed and can cause conflicts.
# Stop and disable dhcpcd
sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd
# Verify it's not running
systemctl status dhcpcd
If you had dhcpcd managing interfaces, NetworkManager will take over after a reboot.
NetworkManager + iwd
Using iwd as the WiFi backend provides better stability than wpa_supplicant, especially on Framework AMD with the MediaTek WiFi card.
Configure iwd backend
Create /etc/NetworkManager/conf.d/wifi-backend.conf:
[device]
wifi.backend=iwd
Enable services
sudo systemctl enable --now NetworkManager
sudo systemctl enable --now iwd
Disable wpa_supplicant (if installed)
sudo systemctl stop wpa_supplicant
sudo systemctl disable wpa_supplicant
DNS with systemd-resolved
I use systemd-resolved for DNS instead of letting NetworkManager write to /etc/resolv.conf directly.
Enable systemd-resolved
sudo systemctl enable --now systemd-resolved
Link resolv.conf
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Configure NetworkManager to use it
Create /etc/NetworkManager/conf.d/dns.conf:
[main]
dns=systemd-resolved
Verify
resolvectl status
WiFi Management
CLI (nmcli)
# List networks
nmcli device wifi list
# Connect
nmcli device wifi connect "SSID" password "password"
# Saved connections
nmcli connection show
# Disconnect
nmcli device disconnect wlan0
# Forget network
nmcli connection delete "SSID"
TUI (impala)
I use 10-19 LIFE/13 TECH SETUP/13.11 APPS/impala for interactive WiFi management — much nicer than iwctl:
impala
See 10-19 LIFE/13 TECH SETUP/13.11 APPS/impala for keybindings and configuration.
Tailscale
Tailscale creates a secure mesh network between all your devices.
Installation
curl -fsSL https://tailscale.com/install.sh | sh
Or via pacman:
sudo pacman -S tailscale
Setup
sudo systemctl enable --now tailscaled
sudo tailscale up
Follow the auth URL to connect to your tailnet.
Useful commands
tailscale status # Show connected devices
tailscale ip # Show Tailscale IP
tailscale ping <host> # Ping another device
tailscale ssh <host> # SSH to another device (if enabled)
Exit node (use another device as VPN)
# Enable exit node on a device
sudo tailscale up --advertise-exit-node
# Use an exit node
sudo tailscale up --exit-node=<hostname>
Complete Setup Summary
- Disable dhcpcd
- Enable NetworkManager + iwd
- Disable wpa_supplicant
- Enable systemd-resolved
- Link resolv.conf
- Install Tailscale
- Install 10-19 LIFE/13 TECH SETUP/13.11 APPS/impala for WiFi TUI
Resources
- Arch Wiki: https://wiki.archlinux.org/title/NetworkManager#Using_iwd_as_the_Wi-Fi_backend
- Tailscale docs: https://tailscale.com/kb/