Mac OS X users
I achieved this by enabling remote management:
- Ensure that your phone and laptop are connected to the same WiFi network
- On Mac, go to
System preferences/sharing
- Enable remote management
You will see a message similar to this:
- Other users can manage your computer using the address
some.url.com
On your Android device, you should now be able to go to some.url.com
, which delegates to localhost
on your Mac. You can also use ifconfig
to get the IP address of your Mac.
Portable solution with ngrok
(any OS with Node.js)
If you don't mind exposing your project with a temporary domain you can use ngrok
. Lets say I have an app that runs on localhost:9460
I can simply write
npm install ngrok -g
ngrok http 9460
This will give me:
Session Status online Update update available (version 2.2.8, Ctrl-U to update) Version 2.2.3 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding http://f7c23d14.ngrok.io -> localhost:9460 Forwarding https://f7c23d14.ngrok.io -> localhost:9460 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
I can now reach https://f7c23d14.ngrok.io
as a way to remotely view localhost
. This is great to share design work or progress with clients.
Alternate solution with nginx
proxy pass
If you are running something like this through nginx proxy_pass
it will require a bit more tweaking - this is a hacky approach, but it works for me and I am open to suggestions on improving it:
- Enable remote management (as mentioned above)
- Temporarily set the server to listen on port
81
as opposed to80
- Type in the following command:
sudo nginx -s reload
- Visit
http://youripaddress:81
server {
listen 80;
listen 81; # <-------- add this to expose the app on a unique port
server_name ~^(local|local\.m).example.com$;
# ...
}
Reload and visit http://youripaddress:81