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 -IYou'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 startThis 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:
- Open Windows Defender Firewall
- Click "Allow an app through firewall"
- Make sure Node.js is allowed on Private and Public networks
Check if Port is Blocked:
In PowerShell (as Administrator):
netstat -ano | findstr :3000If 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:
- Use Option A (
127.0.0.1) if it works - Or create a Windows shortcut with the current WSL2 IP
🔗 Related: Common Errors Summary | Error Dictionary
Internal Ref: ERROR_WSL_001