EST. 2026 — Notes from real server work SYSADMIN · SECURITY · AI · DIRECTADMIN Issue 01
THE SYSADMIN ALMANAC

Network

22 articles
The NVR Kept Beeping, Then Fell Silent When the Disks Failed
Network

The NVR Kept Beeping, Then Fell Silent When the Disks Failed

The NVR's all-day beeping was not videoloss as everyone thought. It was ipconflict from cameras using DHCP with conflicting IP addresses. Someone got annoyed and muted the whole unit, so when both disks failed together, there was not a single beep. This article fixes the policy one event at a time through ISAPI.

#cctv#nvr#hikvision#isapi
9 min read·16 Oct
Registrar and Billing NS Mismatch: Audit All Three Sides First
Network

Registrar and Billing NS Mismatch: Audit All Three Sides First

A debugging log for "Wrong response from the server" when changing nameservers in a billing system, which failed only for domains with leftover glue IP data, followed by a three-way audit of the registrar, billing system, and actual DNS zones before I felt confident changing anything.

#dns#cloudflare#networking#rest-api
9 min read·13 Oct
One Tunnel Is the Only Way In—and a Single Point of Failure
Network

One Tunnel Is the Only Way In—and a Single Point of Failure

The machine sits behind NAT with no ports open to the internet. Every way in runs through one cloudflared tunnel — web, SSH, and remote desktop. This article covers the four ingress routes I set up, how to read the signs when it goes down, and the trap that keeps the tunnel from starting at boot.

#cloudflare#cloudflared#tunnel#zero-trust
10 min read·5 Oct
Borrowing a VLAN for Windows Tools That Need the Same L2
Network

Borrowing a VLAN for Windows Tools That Need the Same L2

Many manufacturers' device discovery tools use broadcasts that cannot cross L3, so connecting over a VPN still leaves devices invisible. A solution that leaves switch ports alone is to put a small Windows VM on Proxmox with its interface directly in that VLAN, with pitfalls around vlan-aware bridges, a full thin pool breaking other VMs, and virtio leaving Windows without a network adapter after installation.

#proxmox#kvm#vlan#networking
8 min read·19 Sep
Managing Site Switches Remotely with UniFi's Cloud Connector Proxy
Network

Managing Site Switches Remotely with UniFi's Cloud Connector Proxy

My workstation is in a different location from the site, with no VPN and no inbound ports open, but I still need to change VLANs per port, reserve fixed IPs, and track down failing cables. This article explains how Site Manager's connector proxy reaches the legacy API for both reads and writes without requesting a CSRF token, and the discipline needed when holding a key this powerful.

#networking#unifi#rest-api#api
10 min read·18 Sep
Set VLANs on a Hikvision Switch Using Its Web UI API
Network

Set VLANs on a Hikvision Switch Using Its Web UI API

A smart managed switch whose Switch ISAPI endpoints return 403 can still be scripted if you inspect what its web UI sends. This article turns that API into a VLAN configuration script with a dry-run before apply, covering the traps I actually hit, including different field names for reads and writes, CCTV mode forcing 10 Mbps, and a calculated PoE load that exceeds the switch's budget.

#networking#vlan#switch#poe
9 min read·17 Sep
Using an NVR to Reach Inaccessible Cameras with ISAPI and SDK
Network

Using an NVR to Reach Inaccessible Cameras with ISAPI and SDK

The cameras sit behind the NVR's second interface, and none are directly reachable. This article works through what the NVR's ISAPI can actually do, with 26 of 38 tested endpoints working, retrieves CCTV snapshots and RTSP through the NVR, finds when each channel last recorded, and falls back to HCNetSDK through ctypes to read device logs when ISAPI runs out of options.

#cctv#hikvision#nvr#isapi
11 min read·16 Sep
Auditing CCTV Directly with ISAPI and ffprobe RTSP, Bypassing the NVR
Network

Auditing CCTV Directly with ISAPI and ffprobe RTSP, Bypassing the NVR

The NVR screen only tells you a camera is online. It does not tell you its model, how old its firmware is, or the actual stream resolution. In this article, I write a script to query ISAPI deviceInfo on each camera directly, then use ffprobe to read values from the actual RTSP stream to build an inventory and check the health of the camera system I maintain.

#cctv#hikvision#python#networking
9 min read·24 Aug
Planning 2.4GHz WiFi Channels 1/6/11 and Multi-Floor Heatmaps
Network

Planning 2.4GHz WiFi Channels 1/6/11 and Multi-Floor Heatmaps

A five-story building with seven APs per floor needs a 2.4GHz channel plan that avoids overlap both horizontally and vertically. This article covers the 1/6/11 principle, per-floor channel tables, the actual Tx power and RSSI threshold settings, and a Python script that labels floor plans with channels using PIL before a walkthrough survey to create a heatmap.

#wifi#networking#rf#python
9 min read·23 Aug
Inventory Switch and AP Ports with SNMP Walk and MAC Tables
Network

Inventory Switch and AP Ports with SNMP Walk and MAC Tables

You can build your own Layer 2 inventory without a controller or NMS. Write an SNMP walk with pysnmp asyncio to retrieve sysDescr, ifTable, and the bridge FDB, then convert OID indexes back into MAC addresses to find which device connects to which port on which switch.

#snmp#networking#python#monitoring
9 min read·22 Aug
Building a Single-Screen Ping Monitor with C++, ImGui and DirectX 11
Network

Building a Single-Screen Ping Monitor with C++, ImGui and DirectX 11

A small app that pings every device on the network at once and puts the results on one screen. It sends ICMP directly through iphlpapi without calling ping.exe, runs one thread per host, communicates with the UI through std::atomic, renders with Dear ImGui on DirectX 11, and builds with CMake and a single PowerShell script.

#cpp#networking#windows#monitoring
9 min read·21 Aug
Read Device Uptime Without SNMP/SSH/API Using TCP Timestamps
Network

Read Device Uptime Without SNMP/SSH/API Using TCP Timestamps

Many IP cameras, door controllers, and embedded devices have no SNMP, SSH, or API for querying uptime. But if they return TCP timestamps, I can read their boot time remotely without logging in even once.

#networking#monitoring#linux#python
7 min read·20 Aug
Factory to Cloud Behind NAT: Push Snapshots and a Command Queue
Network

Factory to Cloud Behind NAT: Push Snapshots and a Command Queue

The production machine sits in a LAN behind NAT with no public IP, but the owner wants to view data on a cloud website and make edits from a phone that reach the internal machine — possible without opening ports or setting up a VPN, using push snapshots + an edit command queue + idempotent acks

#automation#networking#nat#api
10 min read·9 Aug
MDES 2564 Government CCTV Price Limits and a Hikvision PoE BOM
Network

MDES 2564 Government CCTV Price Limits and a Hikvision PoE BOM

Read the full MDES June 2564 government CCTV reference pricing and basic specifications before setting a budget, then design a Hikvision IP/PoE BOM that meets the minimum specifications, reference price ceilings, 30-day recording retention rule, and requirement to allow at least 3 brands to compete.

#cctv#hikvision#networking#monitoring
10 min read·21 Jul
Control TP-Link Omada OC200 via REST API with Python
Network

Control TP-Link Omada OC200 via REST API with Python

A practical guide to logging into an OC200 controller through REST API v2 with Python — handling CSRF tokens, self-signed certs, fetching sites/devices/SSIDs/DHCP/port-forward rules, and writing back with PATCH, including the read-only fields that cause a nonzero errorCode

#omada#networking#api#python
8 min read·20 Jul
Network-as-code on MikroTik RouterOS
Network

Network-as-code on MikroTik RouterOS

A network-as-code approach for MikroTik — save /export output as a file, strip secrets with a sanitize script before sharing, split it into sections, then generate configs for multiple sites from Jinja2 templates + one set of variables

#mikrotik#routeros#networking#automation
9 min read·19 Jul
Screenshot Multiple Domains Directly from Origin, Bypassing Cloudflare
Network

Screenshot Multiple Domains Directly from Origin, Bypassing Cloudflare

Need screenshots of dozens of domains for inspection, or want to confirm that the origin server (not the CDN cache) renders correctly — but Chrome's screenshot flag has been broken since version 132, and AV reverts hosts edits? This article uses Playwright to override DNS at the process level, solving both problems.

#debugging#cloudflare#python#automation
7 min read·18 Jul
Mail Stopped After Moving to Cloudflare — Proxied Mail Records
Network

Mail Stopped After Moving to Cloudflare — Proxied Mail Records

After adding a domain to Cloudflare and pointing DNS at the host, incoming mail suddenly stops — the most common cause I see is leaving mail/smtp/pop records proxied (orange cloud), even though Cloudflare's proxy only handles HTTP/S. This article covers which records must be grey + token/SSL pitfalls.

#cloudflare#dns#mail#security
7 min read·17 Jul
LAN Access for a Team of 7 Without Open Ports: Cloudflare Zero Trust
Network

LAN Access for a Team of 7 Without Open Ports: Cloudflare Zero Trust

A team of 7 needs RDP access to machines on the LAN without opening any ports to the internet — the Cloudflare Zero Trust architecture (WARP + cloudflared), with 3 lessons from implementation: a forgotten IdP setup, Gateway defaults that allow everything, and the default-deny rule people forget most often

#cloudflare#zero-trust#vpn#remote-access
10 min read·9 Jul
AdSense Says ads.txt Is Missing: Tracing the Logs Layer by Layer
Network

AdSense Says ads.txt Is Missing: Tracing the Logs Layer by Layer

The AdSense Sites page reports ads.txt as "Not found" even though the file exists and is correct — a forensic investigation using curl + access logs to prove, layer by layer, whether Googlebot visited and what it received. Case closed: nothing was blocking it; Google's own status was stale.

#adsense#nginx#cloudflare#logging
9 min read·8 Jul
Put an Idle VPS to Work with WireGuard — A Complete Client Guide
Network

Put an Idle VPS to Work with WireGuard — A Complete Client Guide

Turn a VPS you signed up for on an annual plan into a WireGuard hub for accessing your home LAN anytime, without port forwarding — covering app installation, config imports, QR scanning, troubleshooting, and administration

#wireguard#vpn#vps#networking
12 min read·9 Jun
A Telegram Bot for DA Server Monitoring with a Small Blast Radius
Network

A Telegram Bot for DA Server Monitoring with a Small Blast Radius

A guide to setting up a Telegram bot as a lightweight control surface for monitoring a DirectAdmin server — read-only commands plus IP blocking/unblocking only, with no open ports, no added services, and a blast radius limited by least privilege at every layer

#telegram#bot#monitoring#alerting
13 min read·1 Jun