Linux Net Labs #2 - Multi-Client Forking Echo Server

Recap In Day 1, we built the simplest possible TCP server in C: a blocking echo server that handled one client at a time. That worked fine for basic tests, but it had a major limitation — a second client had to wait until the first one disconnected. Today, we fix that by introducing fork(). The Idea: fork() per Client Unix gives us a neat primitive: fork(). It clones the current process into a child, which can run independently of the parent. ...

September 16, 2025 · 6 min

Linux Net Labs #1 - Blocking Echo Server (Baseline)

Start from a single-thread blocking TCP echo server. Why it matters, how it works, pitfalls (EINTR, SO_REUSEADDR), and what’s next: forked/threaded → select → epoll.

September 15, 2025 · 11 min

Set Up a Free WireGuard VPN on Oracle Cloud

TL;DR: Oracle Cloud’s always-free VMs make a great WireGuard VPN host — if you know the gotchas. Here’s how I set mine up in Sydney with working internet access, correct firewall rules, and a tuned MTU so it doesn’t crawl. Note that this is more of a learning exercise, and a setup to play around with, than a serious VPN for everyday use. The problem being the lowly-spec’d free Oracle cloud server that is used. If you are lucky and manage to get a free Ampere VM from Oracle, that should be somewhat faster. ...

August 8, 2025 · 5 min

Build a Peer-to-Peer Mesh VPN with WireGuard and Linux

A practical walkthrough of building a lightweight peer-to-peer mesh VPN using WireGuard, with a focus on clarity, routing, MTU, and the kind of debugging you only get from raw packets and real packets.

August 7, 2025 · 4 min