Files
quartz/content/10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md
Quartz Syncer 125a9b1752
All checks were successful
Build and Deploy Quartz / build (push) Successful in 26s
Published multiple files
2026-02-05 09:53:27 -07:00

3.5 KiB

publish, permalink, title, created, modified, tags, cssclasses
publish permalink title created modified tags cssclasses
true /10-19 LIFE/13 TECH SETUP/13.13 OS SETUP/Network.md Network 2026-01-29T14:15:15.157-07:00 2026-02-05T09:41:11.148-07:00
network
wifi
tailscale

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

  1. Disable dhcpcd
  2. Enable NetworkManager + iwd
  3. Disable wpa_supplicant
  4. Enable systemd-resolved
  5. Link resolv.conf
  6. Install Tailscale
  7. Install 10-19 LIFE/13 TECH SETUP/13.11 APPS/impala for WiFi TUI

Resources