The N100 hardware for my new soft router/home server was assembled and ready. The grand vision involved virtualization, allowing this single machine to run my router, NAS, and potentially other services simultaneously. The chosen foundation for this was Proxmox Virtual Environment (PVE), a powerful, open-source hypervisor based on Debian Linux.
Installing PVE: The First Hurdle
Installing PVE itself is relatively straightforward, similar to installing any Linux distribution:
- Create Installation Media: Download the PVE ISO image. On my Mac, I used Balena Etcher to write the ISO to a USB drive. My first attempt failed – turns out the old USB drive I grabbed was faulty. A newer drive worked perfectly.
- Boot from USB: Connect a monitor and keyboard to the N100 box, plug in the USB drive, and boot into the BIOS/UEFI settings (usually by pressing DEL or F2 during startup). Set the USB drive as the primary boot device.
- PVE Installer: Follow the graphical installer prompts. Key settings during installation:
- Target Hard Disk: Select the Fanxiang NVMe SSD.
- Location/Timezone: Set appropriately.
- Hostname: Set to something memorable, like
pve.local. - Network Configuration: Crucially, assign a static IP address for PVE’s management interface (e.g.,
10.0.0.2), along with the gateway (10.0.0.1- my eventual router VM’s address) and DNS servers. I chose one of the four physical ports (e.g.,enp1s0) for this initial management access.
The installation completed smoothly, and PVE rebooted. I could access the command line directly on the N100, and more importantly, access the web UI from my Mac at https://10.0.0.2:8006. Stage one complete!
The Networking Nightmare: Reconfiguring for VMs
PVE’s default network setup uses one physical port (enp1s0 in my case) solely for its own management. However, to allow my virtual machines (like the router VM) to connect to both the internet (WAN) and my home network (LAN), I needed to create Linux Bridges.
My plan:
vmbr0: Use a different physical port (e.g.,enp2s0) for the WAN connection (connecting to my ISP modem).vmbr1: Use the remaining two physical ports (e.g.,enp3s0,enp4s0) bridged together for the LAN connection (connecting to my home switch).- Crucially: Move PVE’s own management interface from the physical port
enp1s0onto the newly created LAN bridge (vmbr1). This way, I could manage PVE from any computer on my home network using the10.0.0.2address, freeing upenp1s0perhaps for other uses.
This reconfiguration is done by editing the /etc/network/interfaces file directly via the PVE console (or SSH). I carefully modified the file, creating the bridge definitions and changing the management interface settings.
I applied the changes (systemctl restart networking or a reboot). And then… disaster.
I could no longer access the PVE web UI at 10.0.0.2. Pings failed. It seemed I had completely locked myself out.
Troubleshooting in the Dark
Panic set in. Had I made a typo in the config file? Did the bridge fail to come up? I had to go back to the “direct connection” method: plug a monitor and keyboard directly into the N100 box.
Logging into the PVE console, I ran ip a to check the network interface status. The output revealed the problem: vmbr1 (my intended LAN bridge and new management interface) had no IP address. My configuration changes hadn’t been applied correctly, or something had gone wrong during the network restart.
Carefully re-examining /etc/network/interfaces line by line, I eventually spotted the error – perhaps a typo, a missing auto vmbr1, or incorrect bridge port settings. I corrected the file using the nano editor (a bit friendlier than vi for quick edits).
After saving the corrected file and restarting the networking service again (systemctl restart networking), I ran ip a one more time. Success! vmbr1 now showed the correct 10.0.0.2 address.
Back on my Mac, I refreshed https://10.0.0.2:8006, and the Proxmox login screen reappeared. Access restored!
This harrowing experience was my first real taste of configuring Linux networking and the importance of meticulousness when editing critical system files. With the PVE host networking finally stable, I was ready for the main event: creating the virtual machine that would become my new home router.