Skip to content

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 firefox to 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.