Access Tailnet and Local LAN Web Services via WSLg and Firefox
Overview
This guide enables access to Tailscale web services (both Tailnet IPs and subnet-routed LAN IPs) from a Windows work computer using Firefox running in WSL, useful when Tailscale cannot be installed on the Windows host.
Prerequisites
- Windows 11 or Windows 10 Build 19044+
- WSL2 with Ubuntu installed
- Tailscale installed and authenticated in WSL
Step 1: Verify WSLg is Installed
In PowerShell:
wsl --version
Confirm WSLg version is listed. If not, update WSL:
wsl --update
wsl --shutdown
Step 2: Install Firefox from Mozilla PPA
In WSL Ubuntu terminal:
# Remove snap version if installed
sudo snap remove firefox
# Add Mozilla's official PPA
sudo add-apt-repository ppa:mozillateam/ppa -y
# Prioritize PPA version over snap
echo 'Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001' | sudo tee /etc/apt/preferences.d/mozilla-firefox
# Install Firefox
sudo apt update
sudo apt install firefox -y --allow-downgrades
Step 3: Configure Tailscale to Accept Routes
Enable subnet routing and SSH:
sudo tailscale up --accept-routes --ssh
This allows WSL to access both Tailnet IPs (100.x.x.x) and subnet-routed LAN IPs (192.168.x.x).
Step 4: Launch Firefox
firefox &> /dev/null &
The &> /dev/null & redirects output and runs Firefox in the background, keeping your terminal clean.
Usage
Once Firefox launches, navigate to:
- Tailscale IPs:
http://100.x.x.x:port - Local LAN IPs:
http://192.168.x.x:port(requires subnet routing enabled on your Tailnet)
Notes
- Tailscale flags (
--accept-routes,--ssh) persist across restarts - Firefox can be launched from any WSL directory
- Consider bookmarking frequently accessed services
- Trust self-signed certificates as needed for HTTPS services
View Running Firefox Processes
ps aux | grep firefox
Or for a cleaner view with just PIDs and command:
pgrep -a firefox
Kill All Firefox Processes
pkill firefox
This will terminate all Firefox processes at once.
Alternative: Kill by Specific PID
If you only want to kill a specific Firefox instance:
# Get the PID
pgrep firefox
# Kill specific PID
kill <PID>
One-Liner to Check and Kill
To see what's running and then kill it:
pgrep -a firefox && pkill firefox
Recommended workflow:
- When done browsing, just run
pkill firefoxto clean up all Firefox processes - If Firefox isn't responding, you can force kill with
pkill -9 firefox
The pkill command is the simplest approach since Firefox often spawns multiple child processes, and pkill will catch them all instead of having to hunt down individual PIDs.