How do I allow any device, e.g., iPhone, to connect over a WLAN to my Mac's localhost server?
On my Mac, I'm running a "Hello World" HTTP Node.js server that serves a page, which Safari opens successfully, at http://localhost:1337
. And, running ipconfig getifaddr en1
in Terminal outputs 192.168.1.9
.
But, Safari, on both iPhone & Mac, displays "Safari can't connect to the server" when it tries to open http://192.168.1.9:1337
.
I don't think this should involve port forwarding because I only want the HTTP server to be available privately, not publicly.
Related:
- Accessing localhost from iPhone (in same network)
- https://superuser.com/questions/308451/connect-to-localhost-from-another-computer
- https://superuser.com/questions/400752/can-we-run-local-server-over-local-network-without-internet-access
- https://serverfault.com/questions/254947/accessing-localhost-xampp-from-another-computer-over-lan-network-how-to
I had the same problem. I turned off my WI-FI on my Mac and then turned it on again, which solved the problem. Click Settings > Turn WI-FI Off.
I tested it by going to Safari on my iPhone and entering my host name or IP address. For example:
http://<name>.local
or http://10.0.1.5
I was only able to access my iphone using http://name.local:1337
. You have to add the ".local" You can find your computer name under System Preferences/sharing/"Computer Name".
Have your server listen on 192.168.1.9:1337
, not localhost:1337
, i.e., 127.0.0.1:1337
.
Try enabling Internet Sharing:
Open System Preferences -> Sharing.
Check Internet Sharing to turn it on, it will prompt you to confirm your action, select ok.
If your iPhone is connected using USB, the iPhone USB is checked at the "sharing your connection" list on the right side.
After this, try accessing your local server using your macs ip on wifi.
My problem was the same, but the solution had to do with changing a firewall setting. It turned out that node was set to block incoming traffic. I knew something was up because I used to be able to get to my localhost server from my phone.
Go to System Preferences -> Security & Privacy -> Firewall -> Firewall Options, and then scroll down until you find node and make sure node's setting is set to Allow incoming connections.
After changing the setting, I could reach the localhost server (port 3000) running on my Mac by going to http://192.168.1.11:3000
MacOS Sierra users can find their auto-generated vanity URL by going to System Preferences > Sharing
and checking beneath the Computer Name text input. To access it, enter this URL, plus your port number (e.g. your-name.local:8000), on your iPhone over the same Wi-Fi connection as your computer.
I suggest to use the name of the computer, e.g.http://mymac:1337/
. Works for me perfect without any configuration required and I don't have to care about changing IP addresses due DHCP.
make sure you phone and mac machine both connected to the same wifi and you good to go your http://<machine-name>.local
As posted I followed moeamaya's answer but needed to modify it just a bit to see my work in the Sites directory.
http://[name].local.~[username]/
[name] is as stated already (System Preferences/sharing/"Computer Name")
[username] is found at:
/etc/apache2/users/username.conf
hope this helps!
Connect your iPhone to your Mac via USB.
Go to Network Utility (cmd+space and type "network utility")
Go to the "Info" tab
Click on the drop down menu that says "Wi-Fi" and select "iPhone USB" as shown here:
You'll find an IP address like "xxx.xxx.xx.xx" or similar. Open Safari browser on your iPhone and enter IP_address:port_number
Example: 169.254.72.86:3000
[NOTE: If the IP address field is blank, make sure your iPhone is connected via USB, quit Network Utility, open it again and check for the IP address.]
Tried everything on this page, but http://<name>.local:<PORT>
only worked on my iPhone after I quit and restarted Safari...
Always use the IP that is shown in your Network settings. It changes when you change location and you use another wireless connection.
For example in my case now it is: 10.0.0.5
also, make sure the server is listening for ur mobile device! for example, by default jekyll only answers requests made by the host machine. this solved my problem:
Connect to a locally built Jekyll Server using mobile devices in the LAN
来源:https://stackoverflow.com/questions/12657651/connect-device-to-mac-localhost-server