Error DictionaryLast Updated: Jan 31, 2026

Fix: Can't Access localhost:3000 on Windows WSL2

Step-by-step fix for Windows WSL2 users who can't access OpenClaw at localhost:3000 even though the server is running.

This page helps Windows WSL2 users who see "Server running" but can't access the page in their browser.


🔴 Symptoms (What You See)

In your WSL2 terminal:

> OpenClaw@1.0.0 start
> node server.js

Server running on http://localhost:3000
OpenClaw is ready! 🚀

In your Windows browser:

This site can't be reached localhost refused to connect. ERR_CONNECTION_REFUSED

If this matches your situation, you are in the right place.


🔍 Why This Happens (Root Cause)

WSL2 runs in a virtual machine with its own network stack.

When OpenClaw says it's running on localhost:3000, that's the WSL2 localhost, not Windows localhost. Windows and WSL2 don't always share localhost correctly.


✅ How to Fix It (Step-by-Step)

Option A: Use 127.0.0.1 Instead (Quick Fix)

Instead of http://localhost:3000, try:

http://127.0.0.1:3000

This often works because Windows maps 127.0.0.1 differently than localhost.


Option B: Use the WSL2 IP Address

Step 1 — Find Your WSL2 IP

In your WSL2 terminal, run:

hostname -I

You'll see an IP like:

172.21.0.1

Step 2 — Access via IP

In your Windows browser, go to:

http://172.21.0.1:3000

Replace 172.21.0.1 with your actual IP from Step 1.


Option C: Bind to All Interfaces (Permanent Fix)

If OpenClaw supports it, you can make it listen on all network interfaces:

HOST=0.0.0.0 npm run start

This makes the server accessible from both WSL2 and Windows localhost.


🔎 Verify the Fix

Open your preferred URL in Windows browser:

  • http://127.0.0.1:3000
  • OR http://172.x.x.x:3000

✅ Expected Result

The OpenClaw dashboard loads in your browser.

❌ Still Not Working?

Check Windows Firewall:

  1. Open Windows Defender Firewall
  2. Click "Allow an app through firewall"
  3. Make sure Node.js is allowed on Private and Public networks

Check if Port is Blocked:

In PowerShell (as Administrator):

netstat -ano | findstr :3000

If something else is using the port, see Fix: Port 3000 in use.


🧭 Advanced Notes

WSL2 IP Changes on Reboot:

The WSL2 IP address (172.x.x.x) changes every time you restart Windows or WSL2. If you're using Option B, you'll need to check hostname -I again.

Recommended Setup for Regular Use:

  1. Use Option A (127.0.0.1) if it works
  2. Or create a Windows shortcut with the current WSL2 IP

🔗 Related: Common Errors Summary | Error Dictionary

Internal Ref: ERROR_WSL_001
ErrorWindowsWSL2localhostNetwork