DEV Community

Cover image for Accessing Localhost from Another Device: Vite, Next.js, React & Express Guide
Mahmudur Rahman
Mahmudur Rahman

Posted on

Accessing Localhost from Another Device: Vite, Next.js, React & Express Guide

Accessing Localhost (Vite, Next.js, React, Express) from Another Device on the Same Network

When developing web applications, you might need to test them on a real mobile device or another computer connected to the same network. By default, local development servers (e.g., Vite, Next.js, React, Express) bind to localhost, making them accessible only on your own machine. This guide will help you access your local server from another device.


🌍 What is Localhost & How It Works?

Localhost (127.0.0.1) is a special address used by your computer to refer to itself. When you run a local development server, it typically binds to localhost, meaning it's only accessible from the same computer.

However, when you need to test your application on another device, you must expose your server to the local network. This is done by binding the server to 0.0.0.0 (which means "listen on all available network interfaces") and accessing it via your local IP address.


🌍 Finding Your Local IP Address

To access your development server from another device, you need your local IP address. Follow these steps:

πŸ–₯ Windows:

  1. Open Command Prompt (Win + R -> type cmd -> press Enter).
  2. Run the command:

    ipconfig
    
    
  3. Look for IPv4 Address under your active network connection (e.g., 192.168.1.100).

🍎 macOS / Linux:

  1. Open Terminal.
  2. Run:

    ifconfig | grep "inet "
    
    

    or

    ip a
    
    
  3. Find the inet address for your active network (e.g., 192.168.1.100).


πŸš€ Running a Development Server Accessible on Another Device

πŸ›  Vite:

By default, Vite binds to localhost. To expose it, update your vite.config.js:

// vite.config.js
export default {
  server: {
    host: '0.0.0.0',
    port: 5173, // or any available port
  }
};

Enter fullscreen mode Exit fullscreen mode

Then, start the server:

vite

Enter fullscreen mode Exit fullscreen mode

Or, in package.json:

"scripts": {
  "dev": "vite --host"
}

Enter fullscreen mode Exit fullscreen mode

Then, access it from another device using http://YOUR_LOCAL_IP:5173/.

⚑ React (Create React App - CRA):

To make a CRA server accessible:

HOST=0.0.0.0 npm start

Enter fullscreen mode Exit fullscreen mode

Or, manually specify the host:

npm start -- --host 0.0.0.0

Enter fullscreen mode Exit fullscreen mode

Then, visit http://YOUR_LOCAL_IP:3000/.

⏭️ Next.js:

Next.js allows setting a host when starting the server:

next dev -H 0.0.0.0

Enter fullscreen mode Exit fullscreen mode

Then, open http://YOUR_LOCAL_IP:3000/.

πŸ—οΈ Express.js:

When running an Express server, bind it to all interfaces:

app.listen(3000, '0.0.0.0', () => {
  console.log('Server running at http://YOUR_LOCAL_IP:3000/');
});

Enter fullscreen mode Exit fullscreen mode

πŸ”§ Troubleshooting

❌ Can’t Access the Server from Another Device?

  1. Check Firewall Settings – Ensure your OS firewall allows incoming connections on the port.
  2. Use the Correct IP – Double-check that you are using your local IP, not localhost.
  3. Disable VPN – Some VPNs block LAN connections.
  4. Verify Port Availability – Ensure the port is not blocked by your router.

πŸ”’ Secure Your Server (If Needed)

If your local server is open on a public network, consider using tools like ngrok or Cloudflare Tunnel to expose it securely.

ngrok http 5173

Enter fullscreen mode Exit fullscreen mode

βœ… Conclusion

Accessing localhost from another device is simple when you bind your development server to 0.0.0.0 and use your local IP. This is especially useful for testing on real devices and collaborating with others on the same network.

πŸš€ Happy coding!

Follow for more

Top comments (0)