Complete guide for deploying NODE-PC as a Tailscale exit node with a Windows 11 IoT Enterprise LTSC 2024 VM running StreamFab — located at Aunt's house on 1 Gbps fiber.
Install Ubuntu 24.04 LTS on the GMKtec NucBox M6 Ultra. During installation, set the hostname to NODE-PC and create user brent-rosen. Select Xorg (not Wayland) as the display server — Splashtop requires Xorg.
This prevents Ubuntu from ever offering or auto-installing a major version upgrade to 25.x or beyond.
sudo sed -i 's/Prompt=.*/Prompt=never/' /etc/update-manager/release-upgrades
Verify it took:
grep Prompt /etc/update-manager/release-upgrades
Prompt=never
Remove Firefox, Flatpak, Bottles, and Docker — NODE-PC doesn't need any of these.
sudo snap remove firefox
sudo apt remove -y flatpak docker.io docker-compose
sudo apt autoremove -y
Download and install the Splashtop Streamer for remote desktop access. Download from splashtop.com/linux-remote-desktop and install the .deb package:
cd ~/Downloads
sudo dpkg -i splashtop-streamer-*.deb
sudo apt --fix-broken install -y
Open the Splashtop Streamer app and sign in to your Splashtop account.
Install Tailscale and configure NODE-PC as an exit node.
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --advertise-exit-node
A login URL will be printed. Open it in a browser and authenticate. Then go to the Tailscale admin console and:
Verify the Tailscale IP:
tailscale ip -4
100.75.215.100
Tailscale exit nodes require IP forwarding to be enabled on the host.
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt --fix-broken install -y
Install OpenSSH server so you can SSH into NODE-PC from anywhere on the Tailscale network.
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
Now you can SSH in from any machine on your Tailscale network:
ssh brent-rosen@100.75.215.100
192.168.0.102 if you're physically on Aunt's network, but the Tailscale IP 100.75.215.100 works from anywhere.
Add the Oracle VirtualBox repository and install.
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
sudo apt install -y virtualbox-7.1
Download and install the Extension Pack matching your VirtualBox version.
VBOX_VER=$(VBoxManage --version | cut -dr -f1)
wget "https://download.virtualbox.org/virtualbox/${VBOX_VER}/Oracle_VirtualBox_Extension_Pack-${VBOX_VER}.vbox-extpack"
sudo VBoxManage extpack install --replace "Oracle_VirtualBox_Extension_Pack-${VBOX_VER}.vbox-extpack"
KVM claims the AMD-V virtualization extensions before VirtualBox can use them. Blacklist it permanently.
echo -e "blacklist kvm_amd\nblacklist kvm" | sudo tee /etc/modprobe.d/blacklist-kvm.conf
sudo update-initramfs -u
If KVM is currently loaded, unload it now (no reboot needed):
sudo modprobe -r kvm_amd kvm
Download the full (non-evaluation) ISO from Archive.org. This is the activatable version — do not use the 90-day eval from Microsoft's Eval Center.
cd ~
wget -O Win11_IoT_LTSC_2024.iso "https://archive.org/download/Windows11LTSC/X23-81951_26100.1742.240906-0331.ge_release_svc_refresh_CLIENT_ENTERPRISES_OEM_x64FRE_en-us.iso"
Verify the hash:
sha256sum Win11_IoT_LTSC_2024.iso
4f59662a96fc1da48c1b415d6c369d08af55ddd64e8f1c84e0166d9e50405d7a
Run each command one at a time, verifying each succeeds before proceeding.
VBoxManage createvm --name "Win11-LTSC" --ostype Windows11_64 --register
VBoxManage modifyvm "Win11-LTSC" --memory 6144 --cpus 2 --vram 128 --graphicscontroller vboxsvga
VBoxManage modifyvm "Win11-LTSC" --firmware efi
VBoxManage modifyvm "Win11-LTSC" --ioapic on --rtcuseutc on
VBoxManage createhd --filename "$HOME/VirtualBox VMs/Win11-LTSC/Win11-LTSC.vdi" --size 61440 --format VDI
VBoxManage storagectl "Win11-LTSC" --name "SATA Controller" --add sata --controller IntelAhci
VBoxManage storageattach "Win11-LTSC" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "$HOME/VirtualBox VMs/Win11-LTSC/Win11-LTSC.vdi"
VBoxManage storagectl "Win11-LTSC" --name "IDE Controller" --add ide --controller PIIX4
VBoxManage storageattach "Win11-LTSC" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium ~/Win11_IoT_LTSC_2024.iso
VBoxManage modifyvm "Win11-LTSC" --boot1 dvd --boot2 disk --boot3 none --boot4 none
VBoxManage modifyvm "Win11-LTSC" --clipboard-mode bidirectional --draganddrop bidirectional
Launch the VM with a visible GUI window (connect via Splashtop to see it):
export DISPLAY=:0
VBoxManage startvm "Win11-LTSC" --type gui
When "Press any key to boot from CD or DVD" appears, quickly press a key inside the VM window.
Before the OOBE starts asking for a Microsoft account, disconnect the VM's network from SSH:
VBoxManage controlvm "Win11-LTSC" setlinkstate1 off
Then inside the VM, use VirtualBox menu → Input → Keyboard → Soft Keyboard to press Shift + F10. In the Command Prompt that appears, type:
oobe\bypassnro
The VM will reboot. Walk through region/keyboard selection again. This time you'll see "I don't have internet" → click it, then "Continue with limited setup". Create a local account:
| Setting | Value |
|---|---|
| Username | Brent |
| Password | (your choice — or leave blank for no password) |
Disable all privacy settings when prompted, then finish the OOBE.
Once you're at the desktop, reconnect the VM's network:
VBoxManage controlvm "Win11-LTSC" setlinkstate1 on
Inside the VM, go to Settings → System → Activation → Change product key and enter:
JTX28-2VNCM-X6G3K-CH6BV-B7YP7
In the VirtualBox menu bar: Devices → Insert Guest Additions CD image. Then inside the VM, open File Explorer, go to the CD drive, and run VBoxWindowsAdditions.exe. Reboot when prompted.
After reboot, the VM display will auto-resize and clipboard sharing will work.
StreamFab needs the VM awake 24/7 for download queues. Inside the VM:
Then open Command Prompt and run:
powercfg /change standby-timeout-ac 0
Inside the VM, open Edge and go to:
https://www.dvdfab.cn/download.htm
Download and install StreamFab All-In-One. Activate with your license.
The Synology DS1522+ NAS is reachable at Tailscale IP 100.75.215.99. Map the StreamFab download folder as a persistent network drive.
First, verify connectivity from inside the VM:
ping 100.75.215.99
Then map the drive:
net use Z: "\\100.75.215.99\homes\Media\StreamFab Downloads" /user:Brent /persistent:yes
Enter your Synology password when prompted. Then set StreamFab's download folder to Z:\.
Create a systemd service so the VM launches automatically with a visible GUI whenever NODE-PC boots.
sudo tee /etc/systemd/system/win11-ltsc-vm.service << 'EOF'
[Unit]
Description=Win11-LTSC VirtualBox VM
After=network.target vboxdrv.service
Requires=vboxdrv.service
[Service]
Type=forking
User=brent-rosen
Environment=DISPLAY=:0
ExecStart=/usr/bin/VBoxManage startvm "Win11-LTSC" --type gui
ExecStop=/usr/bin/VBoxManage controlvm "Win11-LTSC" acpipowerbutton
TimeoutStopSec=120
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable win11-ltsc-vm.service
The VM will now auto-start on every boot with a visible VirtualBox window on the desktop (accessible via Splashtop). The acpipowerbutton stop command sends a graceful shutdown to Windows.
| Property | Value |
|---|---|
| PC Name | NODE-PC |
| Location | Aunt's house |
| WAN IP | 107.204.139.189 |
| LAN IP | 192.168.0.102 |
| Tailscale IP | 100.75.215.100 |
| SSH Command | ssh brent-rosen@100.75.215.100 |
| Property | Value |
|---|---|
| VM Name | Win11-LTSC |
| OS | Windows 11 IoT Enterprise LTSC 2024 |
| Product Key | JTX28-2VNCM-X6G3K-CH6BV-B7YP7 |
| RAM | 6 GB |
| CPUs | 2 |
| Disk | 60 GB VDI |
| Boot | EFI |
| Local User | Brent |
| Download Drive | Z: → \\100.75.215.99\homes\Media\StreamFab Downloads |
| # | Service |
|---|---|
| 1 | Amazon Prime Video |
| 2 | Apple TV+ |
| 3 | DirecTV |
| 4 | Disney+ |
| 5 | Fox One |
| 6 | HBO Max |
| 7 | Netflix |
| 8 | Paramount+ |
| 9 | Peacock |
ssh brent-rosen@100.75.215.100
export DISPLAY=:0
VBoxManage startvm "Win11-LTSC" --type gui
VBoxManage controlvm "Win11-LTSC" acpipowerbutton
VBoxManage showvminfo "Win11-LTSC" | grep State
tailscale status
To add this page to your HomeHub site, place this file in your project as:
node-pc-setup/index.html
Then add a card on the homepage linking to /node-pc-setup/. The page will be live at homehub.wiki/node-pc-setup/ after your next Cloudflare Pages deployment.