So I have a Tailscale team and network set up. I can see team member devices. I can ping the 100.* IP addresses that Tailscale gives me, so it looks like everything is working. Our team is working on nodejs projects. When a teammate runs “npm run dev” to launch a temporary web server on “localhost:3000”, I cannot access that web server by typing their Tailscale IP address followed by :3000 into my browser. Is there an issue here or am I misunderstanding how this is supposed to work?
i dont know much about npm but can you bind the :3000 to any network adapter? like 0.0.0.0:3000?
maybe that will do the trick.
That worked! Thanks a lot. I feel like this should be in the documentation somewhere for complete networking noobs.
It’s not an NPM or Tailscale specific problem, but a general network thing.
Whenever you bind something to localhost, only the local host (i.e. the machine itself) can access it.
For other hosts in the network to access a service on your host, you have to bind the service to at least one network IP that is in the same network as the host you want to reach it from, or you bind it to 0.0.0.0 which makes it available on all the network devices of your host (and thus to all hosts connected on those networks).