Connect Device to Mac localhost Server? [closed]

2019-01-30 01:38发布

问题:

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

回答1:

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



回答2:

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".



回答3:

Have your server listen on 192.168.1.9:1337, not localhost:1337, i.e., 127.0.0.1:1337.



回答4:

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.



回答5:

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



回答6:

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.



回答7:

I solve a similar problem.

  • connected Mac and iPhone to the same Wi-Fi
  • change the iPhone Wi-Fi setting, set http proxy to manual and change the Server to you Mac ip address and setting the Port. My Port is 80.

  • you can input http://<Mac ip>:<your customer server port> in iPhone's safari


回答8:

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.



回答9:

make sure you phone and mac machine both connected to the same wifi and you good to go your http://<machine-name>.local



回答10:

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!



回答11:

  1. Connect your iPhone to your Mac via USB.

  2. Go to Network Utility (cmd+space and type "network utility")

  3. Go to the "Info" tab

  4. Click on the drop down menu that says "Wi-Fi" and select "iPhone USB" as shown here:

  5. 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.]



回答12:

Tried everything on this page, but http://<name>.local:<PORT> only worked on my iPhone after I quit and restarted Safari...



回答13:

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



回答14:

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