gpu
ssh
tailscale
wsl2
Part I: Remote Server Setup
The scenario : A Windows 11 PC with an RTX 4060 (16GB VRAM) sits at your
brother's place. Tailscale is installed. WSL2 Ubuntu is ready. You want to
SSH into it from home and use it as a GPU dev server. This part gets you
from zero to a fully persistent, auto-starting remote Linux environment.
Architecture
graph LR
subgraph "Your Home"
HOME["Linux Machine<br/>ssh wsl-dev"]
end
subgraph "Tailscale Mesh"
TS["WireGuard Tunnel<br/>100.125.78.30"]
end
subgraph "Brother's PC"
WIN["Windows 11<br/>Tailscale App"]
WSL["WSL2 Ubuntu<br/>sshd + CUDA"]
GPU["RTX 4060<br/>16GB VRAM"]
WIN --- WSL
WSL --- GPU
end
HOME --> TS --> WIN
Chapters
#
Article
What you'll learn
1
Architecture & Decisions
Tailscale-on-Windows vs WSL2, mirrored vs NAT networking
2
SSH Setup
openssh-server, key-based auth, client config
3
Tailscale Networking
Windows host approach, DNS issues, port exposure
4
WSL2 Persistence
Boot automation, keep-alive, sleep infinity pattern
5
Networking
Mirrored mode, firewall rules (Windows + Hyper-V)
6
GPU & CUDA
Paravirtualized GPU, CUDA toolkit, ML workloads
7
Automation Scripts
ssh_ready/ and full_setup/ script suites
8
Advanced Interop
RDP, Sunshine, Ollama, Jupyter, VS Code Remote
9
Alternatives
Community comparison, what we do better
Quick Reference
Layer
Choice
Why
VPN
Tailscale on Windows only
Official recommendation, no MTU/DNS conflicts
Networking
Mirrored mode
No portproxy needed, ports bind to host IPs
SSH
openssh-server in WSL2
Key-auth only, port 22
Persistence
Task Scheduler + sleep infinity
Reliable; systemd keep-alive has regressions
GPU
Windows driver only
WSL2 uses paravirtualized stubs
CUDA
cuda-toolkit-12-x
Never install cuda or cuda-drivers