Understanding exp://192.168.1.153:8081 in React Native & Expo
If you’ve ever developed a mobile app using React Native and Expo CLI, you’ve likely come across a URL that looks like this:
exp://192.168.1.153:8081
This local development link plays a key role in loading your app onto a physical device during the development process. In this article, we’ll break down what it means, how it works, and what to do if it doesn’t.
What is exp://192.168.1.153:8081?
This is a local Expo development URL used to run your React Native app on your physical device via your local Wi-Fi network.
Let’s break it down:
- exp:// – This protocol is used by Expo to establish a tunnel or direct LAN connection.
- 192.168.1.153 – This is the local IP address of your development machine on the LAN.
- :8081 – This is the port number where your development server (Metro Bundler) is running.
This URL allows the Expo Go app on your mobile device to access and load the JavaScript bundle being served from your computer in real time.
Where is exp://192.168.1.153:8081 Used?
This link typically appears in your terminal or Expo Developer Tools when you run:
npx expo start
You’ll then see a QR code and a line like this:
exp://192.168.1.153:8081
Here’s where it’s used:
- In Expo Go to preview your app
- In debugging and live reload processes
- For testing on real devices over the same network
How to Use the Link with Expo Go
Step-by-Step Guide:
- Connect to Same Wi-Fi
Make sure both your development computer and mobile device are on the same local network (Wi-Fi). - Start the Expo Dev Server
Run npx expo start from your project directory. - Scan the QR Code
Open the Expo Go app on your phone, and scan the QR code or manually enter the exp://192.168.1.153:8081 link. - App Loads Automatically
Your app will be loaded directly on your device, fetching the bundle from your dev server.
Why This URL Changes Sometimes
You might see variations like:
- exp://192.168.1.101:8081
- exp://127.0.0.1:19000
- exp://<your local IP>:8081
These changes happen because:
- Your local IP address can change every time you reconnect to the Wi-Fi.
- The port number may vary depending on your setup or Expo version.
- Different connection modes like LAN, Tunnel, or localhost affect the final URL.
Common Issues with exp://192.168.1.153:8081
1. Connection Failed / Timeout
Cause: Device not on same network or firewall blocking traffic
Solution:
- Confirm same Wi-Fi network
- Disable firewalls temporarily
- Switch to Tunnel mode with npx expo start –tunnel
2. Unable to Load Bundle
Cause: Metro bundler crashed or didn’t start correctly
Solution:
- Restart your dev server
- Run npx expo start -c to clear cache
3. Expo Go Shows Blank Screen
Cause: JS error or incompatible SDK version
Solution:
- Check your console logs
- Ensure expo versions in package.json match current Expo Go version
Is exp://192.168.1.153:8081 Safe?
This link is safe in a development environment because:
- It only runs locally on your network
- It doesn’t expose your machine to the public internet
- It expires when you shut down your dev server
However:
- Avoid sharing this link outside your network
- Don’t expose the port (8081) through public Wi-Fi or VPNs
How to Fix IP Change Every Time
You can set a static IP for your development machine:
For Windows:
- Go to Network Settings > Adapter Options
- Right-click Wi-Fi > Properties > IPv4 Settings
- Manually enter a static IP (e.g., 192.168.1.153)
For macOS:
- Go to System Settings > Network
- Choose Wi-Fi > Advanced > TCP/IP
- Set Configure IPv4 to Manually
Alternative: Use Tunnel Mode Instead
If you have trouble with local IPs, use Expo’s Tunnel mode:
npx expo start –tunnel
This will generate a URL like:
exp://exp.host/@yourusername/your-app-name
This works even if your phone and PC are on different networks — but it may be a bit slower than LAN.
Related Terms You Might Encounter
| Term | Meaning |
| Metro Bundler | JS bundler for React Native apps |
| Expo Go | Mobile app to run your React Native code instantly |
| LAN Mode | Connect via your local IP (fast, but requires same Wi-Fi) |
| Tunnel Mode | Expo routes traffic through the internet (more compatible, slower) |
| exp:// | Protocol used by Expo for local connections |
Conclusion
The URL exp://192.168.1.153:8081 is a crucial piece of the puzzle when working with Expo CLI and React Native. It allows for fast, live testing of your app on real devices over your local network. While it may seem confusing at first, it becomes second nature once you understand how it works, how to troubleshoot it, and how to use it securely.
If you’re running into issues or want a more stable setup, consider using Tunnel mode or assigning a static IP.
Frequently Asked Questions
What is exp://192.168.1.153:8081 used for?
Why is my exp://192.168.1.153:8081 link not working?
Can I use exp://192.168.1.153:8081 over mobile data or VPN?
npx expo start --tunnel.