My phone and pc are in same wifi. When I run ng serve
, I open localhost:4200 in Chrome with my PC, which works.
But I open 192.168.1.107:4200 with my mobile phone, and it doesn’t work.
When I use create-react-app
. It works.
Green is angular. White is react
In order to make your server available in local network, you need to use the following command:
ng serve --host 192.168.1.107
And then the app will be available on 192.168.1.107:4200
on every device in your network.
If you don't know what is your LAN address you can execute ifconfig | grep broadcast
on unix-based OS - the first IP is your computer, or ipconfig
on Windows machine.
Your picture indicates that your PC's IP address is 192.168.1.107
. You stated that you're trying to access your angular app on the following IP:port combination:
192.108.1.107:4200
Assuming this isn't a typo, using the following IP:port combination 192.168.1.107:4200
should allow you to access your angular app.
Please Refer this
If both your desktop and phone are connected to the same WiFi (or any other local network), then use your desktop IP address assigned by the router (not localhost and not 127.0.0.1).
To find out the IP address of your desktop:
- type into the command line ipconfig (Windows) or ifconfig (Unix)
- there's going to be a bunch of IP's
- try all of them (except the forementioned localhost and 127.0.0.1)
If your phone and your computer connected to the same network (Wifi, LAN), you can use your computer local IP address (not the public IP address) to connect from your mobile to your computer.
Note: you should allow this in your computer firewall by adding inbound role to allow accessing your computer through your mobile.
Linux machine + Android phone on the same wifi network:
- Get your machine IP
ifconfig -a
.
.
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.199 netmask 255.255.255.0 broadcast 192.168.1.255
My machine results: network interface wlp3s0, IP 192.168.1.199
- Get your phone IP
consult your phone,
normally in Settings > About device > Status
Result: my phone IP is 192.168.1.196
- Open port 4200 on interface wlp3s0 on your dev machine, your phone IP only, as root:
ufw allow in on wlp3s0 from 192.168.1.196 to any port 4200
read ufw man page!!! - doing the wrong thing can open your machine to attacks
ufw status
Status: active
To Action From
-- ------ ----
4200 on wlp3s0 ALLOW 192.168.1.196
- Serve your app to 192.168.1.199
ng serve --host 192.168.1.199
- Connect from your desktop as well as from your phone to
192.168.1.199:4200
- Alternative - serve to 0.0.0.0
ng serve --host 0.0.0.0
from your machine: localhost:4200
from your phone: 192.168.1.199:4200
You may or may not need --disable-host-check
- Reset your firewall when done
ufw reset
ufw enable
ufw status
I'm not sure whether this command changed in Angular 8, but none of these worked for me.
All I had to do was manually specify the port, et voilà!
ng s --host 0.0.0.0 --port 4200
(Note that you can also use your actual IP address in place of 0.0.0.0
; both worked for me.)