summaryrefslogtreecommitdiff
path: root/net.html
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-09-19 21:13:32 -0500
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-09-19 21:13:32 -0500
commitb6f7b9dda8cd2e4b1c5b006ad5866d3ef7e62310 (patch)
treecea3af7c287c28fcaf379ec3700f0aa76223e244 /net.html
parentffd6abb1403d85b61c80fc8d23a3a04df8895c20 (diff)
inserting link:css via javascript was a bad idea
Diffstat (limited to 'net.html')
-rw-r--r--net.html42
1 files changed, 31 insertions, 11 deletions
diff --git a/net.html b/net.html
index bc07c9b..70979b5 100644
--- a/net.html
+++ b/net.html
@@ -1,13 +1,25 @@
<!DOCTYPE html>
<html>
<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <link rel="icon" href="static/Logo.svg" type="image/svg+xml">
+ <link rel="stylesheet" href="article.css">
+
<title>Minimal Laptop Networking with NixOS</title>
- <meta property="article:published_time" content="2026-07-29">
- <script src="article.js"></script>
</head>
<body>
- <article>
- <header></header>
+ <article class="markdown-body">
+ <header>
+ <div class="header-top">
+ <a href="writing.html" class="header-logo-link"></a>
+ <div class="header-info">
+ <h1>Minimal Laptop Networking with NixOS</h1>
+ <time datetime="2026-07-29">Published Jul 07, 2026</time>
+ </div>
+ </div>
+ <hr>
+ </header>
<p>
The default networking stack on NixOS uses NetworkManager.
@@ -19,9 +31,17 @@
If you're configuring a server, you probably don't need iwd at all; systemd-networkd and systemd-resolved are usually sufficient.
</p>
- <div id="toc"></div>
+ <h2>Table of Contents</h2>
+ <ul>
+ <li><a href="#overview">The default stack</a></li>
+ <li><a href="#iwd">iwd</a></li>
+ <li><a href="#networkd">systemd-networkd</a></li>
+ <li><a href="#resolved">systemd-resolved</a></li>
+ <li><a href="#captiveportal">P.S. Captive portals</a></li>
+ <li><a href="#nm-applet">P.P.S. I miss nm-applet</a></li>
+ </ul>
- <h2>The default stack</h2>
+ <h2 id="overview">The default stack</h2>
<p>If not configured otherwise, NixOS uses the following stack:</p>
<ul>
<li>NetworkManager for wifi</li>
@@ -54,7 +74,7 @@
<p>And let's get to configuring!</p>
- <h2>iwd</h2>
+ <h2 id="iwd">iwd</h2>
<p>
First up is iwd.
The important parts of the configuration are delegating network configuration to networkd, delegating name resolution (DNS) to resolved, and configuring MAC randomization for some extra privacy.
@@ -82,7 +102,7 @@
<li><code><kw>iwctl</kw> <prop>station</prop> <prop>wlan0</prop> <prop>connect</prop> <str>"&lt;SSID&gt;"</str></code>: connects to the network, prompting for a PSK if necessary</li>
</ul>
- <h2>systemd-networkd</h2>
+ <h2 id="networkd">systemd-networkd</h2>
<p>
Next up is systemd-networkd.
Networkd has lots of advanced options for things like static IP config, Wireguard tunnels, VLANs, domain-based DNS routing, and more.
@@ -123,7 +143,7 @@
<li><code><kw>networkctl</kw> <prop>status</prop></code>: make sure there's no significant errors in the logs.</li>
</ul>
- <h2>systemd-resolved</h2>
+ <h2 id="resolved">systemd-resolved</h2>
<p>
Now all we have left is DNS configuration, then we're done.
This is probably the part where you can nerd out the hardest, but I try to keep it pretty minimal.
@@ -152,7 +172,7 @@
<p>You can verify your DNS configuration by using the <code><kw>resolvectl</kw> <prop>status</prop></code>
command or by just opening a website.</p>
- <h2>P.S. Captive portals</h2>
+ <h2 id="captiveportal">P.S. Captive portals</h2>
<p>
Captive portals are those wifi login pages that pop up when you connect to some public wifi networks.
Some captive portals don't behave correctly when you're using an encrypted third-party DNS server instead of the network's advertised resolver.
@@ -162,7 +182,7 @@
Pretty neat!
</p>
- <h2>P.P.S. I miss nm-applet</h2>
+ <h2 id="nm-applet">P.P.S. I miss nm-applet</h2>
<p>
Probably the biggest downside to this setup is the lack of desktop integration.
GNOME and Plasma only support NetworkManager in their network configuration menu, so you're kinda out of luck.