Tailscale Exit Node VirtualBox Windows 11 LTSC

NODE-PC Setup, Restore & Maintenance

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.

🖥️ GMKtec NucBox M6 Ultra ⏱️ ~45 min 🔑 SSH & Splashtop
📦 Device
Ryzen 5 7640HS · 12GB RAM
476GB NVMe · Ubuntu 24.04 LTS
View Full Specs →
🌐 Network
Aunt's House
WAN: 107.204.139.189
LAN: 192.168.0.102
Tailscale: 100.75.215.100
🎯 Purpose
Tailscale Exit Node
Routes streaming traffic through Aunt's LAN for local network detection
💻 VM
Win11-LTSC
6GB RAM · 2 CPUs · 60GB VDI
StreamFab → NAS via Tailscale
Your Devices
Tailscale Network
Any location
Tailscale VPN
Exit Node
NODE-PC
100.75.215.100
LAN
Aunt's Network
Internet (WAN)
107.204.139.189
ℹ️ What this does
NODE-PC serves as a Tailscale exit node at your Aunt's house. When any device on your Tailscale network (Google TV Streamers, phones, laptops) selects NODE-PC as their exit node, their internet traffic routes through Aunt's ISP. This makes streaming services — Amazon Prime, Apple TV, DirecTV, Disney+, Fox One, HBO Max, Netflix, Paramount+, and Peacock — detect the device as being on Aunt's local home network, regardless of the device's physical location.

🐧 Part 1 — Ubuntu 24.04 LTS & Tailscale Exit Node

⚠️ Critical — Do NOT upgrade Ubuntu
Splashtop Streamer (our remote desktop tool) does NOT support Ubuntu 25.x or higher. If you upgrade the OS, you will lose remote desktop access and must physically drive to Aunt's house to fix it. Run the lock command in Step 2 before doing anything else.
1

Install Ubuntu 24.04 LTS

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.

2

Lock Ubuntu to 24.04 — Prevent OS Upgrade

This prevents Ubuntu from ever offering or auto-installing a major version upgrade to 25.x or beyond.

Run on NODE-PC
sudo sed -i 's/Prompt=.*/Prompt=never/' /etc/update-manager/release-upgrades

Verify it took:

grep Prompt /etc/update-manager/release-upgrades
✓ Expected output
Prompt=never
3

Remove Unnecessary Software

Remove Firefox, Flatpak, Bottles, and Docker — NODE-PC doesn't need any of these.

Run on NODE-PC
sudo snap remove firefox
sudo apt remove -y flatpak docker.io docker-compose
sudo apt autoremove -y
4

Install Splashtop Streamer

Download and install the Splashtop Streamer for remote desktop access. Download from splashtop.com/linux-remote-desktop and install the .deb package:

Run on NODE-PC
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.

5

Install & Configure Tailscale

Install Tailscale and configure NODE-PC as an exit node.

Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
Start Tailscale as an exit node
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:

  • Find NODE-PC in the machine list
  • Click the menu → Edit route settings
  • Toggle on "Use as exit node"
  • Rename the machine to NODE-PC

Verify the Tailscale IP:

tailscale ip -4
✓ Expected output
100.75.215.100
6

Enable IP Forwarding (Required for Exit Node)

Tailscale exit nodes require IP forwarding to be enabled on the host.

Run on NODE-PC
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
7

Install Google Chrome

Run on NODE-PC
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
8

Remote SSH Access

Install OpenSSH server so you can SSH into NODE-PC from anywhere on the Tailscale network.

Run on NODE-PC
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:

From any Tailscale device
ssh brent-rosen@100.75.215.100
💡 Tip
You can also SSH using the LAN IP 192.168.0.102 if you're physically on Aunt's network, but the Tailscale IP 100.75.215.100 works from anywhere.

💻 Part 2 — VirtualBox & Windows 11 IoT Enterprise LTSC 2024 VM

1

Install VirtualBox 7.1

Add the Oracle VirtualBox repository and install.

Run on NODE-PC
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
2

Install VirtualBox Extension Pack

Download and install the Extension Pack matching your VirtualBox version.

Run on NODE-PC
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"
3

Blacklist KVM (Required for VirtualBox on AMD)

KVM claims the AMD-V virtualization extensions before VirtualBox can use them. Blacklist it permanently.

Run on NODE-PC
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
4

Download Windows 11 IoT Enterprise LTSC 2024 ISO

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.

Run on NODE-PC (~4.8 GB download)
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
✓ Expected SHA-256
4f59662a96fc1da48c1b415d6c369d08af55ddd64e8f1c84e0166d9e50405d7a
5

Create the Virtual Machine

Run each command one at a time, verifying each succeeds before proceeding.

Create & register the VM
VBoxManage createvm --name "Win11-LTSC" --ostype Windows11_64 --register
Configure CPU, RAM, and graphics
VBoxManage modifyvm "Win11-LTSC" --memory 6144 --cpus 2 --vram 128 --graphicscontroller vboxsvga
Enable EFI boot (required for Windows 11)
VBoxManage modifyvm "Win11-LTSC" --firmware efi
Enable I/O APIC and set RTC
VBoxManage modifyvm "Win11-LTSC" --ioapic on --rtcuseutc on
Create 60GB virtual hard disk
VBoxManage createhd --filename "$HOME/VirtualBox VMs/Win11-LTSC/Win11-LTSC.vdi" --size 61440 --format VDI
Add SATA controller & attach disk
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"
Add IDE controller & mount ISO
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
Set boot order & clipboard
VBoxManage modifyvm "Win11-LTSC" --boot1 dvd --boot2 disk --boot3 none --boot4 none
VBoxManage modifyvm "Win11-LTSC" --clipboard-mode bidirectional --draganddrop bidirectional
6

Start the VM & Install Windows

Launch the VM with a visible GUI window (connect via Splashtop to see it):

Run on NODE-PC (SSH or local terminal)
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.

Windows Installation Steps

  • Select language: English (United States) → click Next
  • Select "Install Windows 11" and check the agreement box → click Next
  • Select the 60GB unallocated disk → click Next
  • Wait for installation to complete (VM will reboot automatically)

Local Account Setup (Bypass Microsoft Account)

Before the OOBE starts asking for a Microsoft account, disconnect the VM's network from SSH:

Run from SSH (NOT inside the VM)
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:

Inside VM Command Prompt
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:

SettingValue
UsernameBrent
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:

Run from SSH
VBoxManage controlvm "Win11-LTSC" setlinkstate1 on
7

Activate Windows

Inside the VM, go to Settings → System → Activation → Change product key and enter:

Windows 11 IoT Enterprise LTSC 2024 Product Key
JTX28-2VNCM-X6G3K-CH6BV-B7YP7
8

Install VirtualBox Guest Additions

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.

9

Disable Sleep & Display Timeout

StreamFab needs the VM awake 24/7 for download queues. Inside the VM:

  • Go to Settings → System → Power → Screen and sleep → set display to Never

Then open Command Prompt and run:

Inside VM Command Prompt
powercfg /change standby-timeout-ac 0

📥 Part 3 — StreamFab & NAS Download Folder

1

Install StreamFab

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.

2

Map NAS Download Folder via Tailscale SMB

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:

Inside VM Command Prompt
ping 100.75.215.99

Then map the drive:

Inside VM Command Prompt
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:\.


🔁 Part 4 — VM Auto-Start on Boot

Create a systemd service so the VM launches automatically with a visible GUI whenever NODE-PC boots.

Create the service file
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
Enable the service
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.


📄 Quick Reference

Network Information

PropertyValue
PC NameNODE-PC
LocationAunt's house
WAN IP107.204.139.189
LAN IP192.168.0.102
Tailscale IP100.75.215.100
SSH Commandssh brent-rosen@100.75.215.100

VM Details

PropertyValue
VM NameWin11-LTSC
OSWindows 11 IoT Enterprise LTSC 2024
Product KeyJTX28-2VNCM-X6G3K-CH6BV-B7YP7
RAM6 GB
CPUs2
Disk60 GB VDI
BootEFI
Local UserBrent
Download DriveZ:\\100.75.215.99\homes\Media\StreamFab Downloads

Streaming Services Routed Through Exit Node

#Service
1Amazon Prime Video
2Apple TV+
3DirecTV
4Disney+
5Fox One
6HBO Max
7Netflix
8Paramount+
9Peacock

Common Commands

SSH into NODE-PC
ssh brent-rosen@100.75.215.100
Start VM manually (if service isn't running)
export DISPLAY=:0
VBoxManage startvm "Win11-LTSC" --type gui
Graceful shutdown VM
VBoxManage controlvm "Win11-LTSC" acpipowerbutton
Check VM status
VBoxManage showvminfo "Win11-LTSC" | grep State
Check Tailscale status
tailscale status

☁️ Deploying to homehub.wiki

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.