将设备连接到Mac本地服务器?[关闭]


99

如何允许任何设备(例如iPhone)通过WLAN连接到Mac的本地主机服务器?

在我的Mac上,我正在运行“ Hello World” HTTP Node.js服务器,该服务器可访问Safari成功打开的页面,位于http://localhost:1337。并且,ipconfig getifaddr en1在终端输出中运行192.168.1.9

但是,尝试打开时,iPhone和Mac上的Safari都会显示“ Safari无法连接到服务器” http://192.168.1.9:1337

我认为这不应该涉及端口转发,因为我只希望HTTP服务器可以私有使用,而不是公开使用。

有关:



我很惊讶地没有看到这样的答案对我
Ryan

Answers:


55

我有同样的问题。我在Mac上关闭了WI-FI,然后再次将其打开,这解决了问题。单击设置>关闭WI-FI。

我通过在iPhone上转到Safari并输入主机名或IP地址进行了测试。例如: http://<name>.localhttp://10.0.1.5


奇怪的是,这对我有用!非常感谢。我不明白为什么。
比约恩·格罗斯曼

3
加一个<name>.local-无需更多静态IP进行测试!
亚当·卡特

我花了一整天的时间来弄清楚这一点。切换我的Mac的WiFi的开/关可以解决此问题。奇怪的。
oif_vet 2015年

切换Mac wifi也为我修复了它。我想知道这是Mac问题还是路由器问题,还是nodejs问题。有任何想法吗?
neoneye '16

1
http:// <name> .local为我工作。要扩展答案,可以在“ 系统偏好设置”>“共享”中找到您Mac的<name> 。在您的计算机名称下:您可以找到本地网络上的计算机可以在以下位置访问您的计算机:<名称> .local
John Lay

42

让您的服务器监听0.0.0.0而不是localhost


1
啊,谢谢你,这对我
有用

1
对于其他答案有疑问的人,请尝试一下!
特伦特

5
或者,您可以指定“ 0.0.0.0”直接绑定到本地ip。如果您切换网络并且未分配相同的IP,将防止出现问题。
Cole Murray

抱歉,您究竟如何“让服务器监听”?
gmarais

@ColeMurray,对不起您的回复。谢谢您的建议。我刚刚更新了答案。
ma11hew28

30

我只能使用来访问我的iPhone http://name.local:1337。您必须添加“ .local”。您可以在“系统偏好设置” /“共享” /“计算机名称”下找到您的计算机名称。


我尝试使用带或不带防火墙的IP地址以及建议的许多其他解决方案,这是唯一可行的解​​决方案。我正在使用节点js通过express在端口3000上运行localhost站点。
lostAtSeaJoshua '17

您也可以通过whoami在控制台中键入来找到您的“名称” 。
Jadam's

1
@Jadam这项技术对我不起作用。我有两个不同的名字。对于本地服务器情况,“计算机名称”是有效的名称。
moeamaya

1
对我来说,使用name.local从来没有到过任何地方,但是使用实际的IP地址却可以。我要说的是使用特定的实际IP地址进行故障排除,而不是像name.local这样的便利,这只会增加另一层复杂性。
MarsAndBack

1
这应该是公认的答案。它不需要对当前的Node.js服务器文件进行其他设置或修改。@ ma11hew28
BenS

14

尝试启用Internet共享:
打开系统偏好设置->共享。选中“ Internet共享”以将其打开,它将提示您确认操作,选择“确定”。如果您的iPhone使用USB连接,则会在右侧的“共享连接”列表中选中iPhone USB。
之后,尝试使用wifi上的macs ip访问本地服务器。


9

我的问题是相同的,但是解决方案与更改防火墙设置有关。原来,该节点已设置为阻止传入流量。我知道发生了什么事,因为我以前能够从手机访问本地主机服务器。

转到系统偏好设置 -> 安全和隐私 -> 防火墙 -> 防火墙选项,然后向下滚动,直到找到节点并确保节点的设置设置为允许传入连接

更改设置后,我可以通过转到http://192.168.1.11:3000来访问Mac上运行的localhost服务器(端口3000)


防火墙是唯一的罪魁祸首。其他一切都很好。
mythicalcoder

哦,男孩,你救了我!谢谢!!
GoOlga

7

我解决了类似的问题。

  • 将Mac和iPhone连接到同一Wi-Fi
  • 更改iPhone Wi-Fi设置,将http代理设置为manual,然后将服务器更改为Mac ip地址并设置端口。我的港口是80。

形象一

图片二

  • 您可以输入http://<Mac ip>:<your customer server port>iPhone的野生动物园

5

MacOS Sierra用户可以通过转到System Preferences > Sharing“计算机名”文本输入下方并在其下方进行检查来找到自动生成的个性化URL 。要访问它,请通过与计算机相同的Wi-Fi连接在iPhone上输入此URL以及端口号(例如your-name.local:8000)。


4
  1. 通过USB将iPhone连接到Mac。

  2. 转到网络实用程序(cmd +空格,然后键入“网络实用程序”)

  3. 转到“信息”标签

  4. 单击显示为“ Wi-Fi”的下拉菜单,然后选择“ iPhone USB”,如下所示:

    步骤4的照片

  5. 您会找到一个IP地址,例如“ xxx.xxx.xx.xx”或类似名称。在iPhone上打开Safari浏览器,然后输入IP_address:port_number

    示例:169.254.72.86:3000

[注意:如果IP地址字段为空白,请确保您的iPhone通过USB连接,退出网络实用程序,再次打开它并检查IP地址。


3

我建议使用计算机的名称,例如http://mymac:1337/。无需任何配置即可完美地为我工作,并且我不必担心因DHCP而更改IP地址。


3

确保您的手机和Mac机都连接到同一wifi,并且您可以继续使用 http://<machine-name>.local


2

如前所述,我遵循moeamaya的回答,但需要对其进行一些修改才能在Sites目录中查看我的工作。

http://[name].local.~[username]/

[名称]如前所述(系统偏好设置/共享/“计算机名称”)

在以下位置找到[用户名]

/etc/apache2/users/username.conf

希望这可以帮助!


在Mac的哪里可以找到username.conf文件?
土豆

1
在根目录@brumbrum的/ Users文件夹中查找
Alfred

1
你也可以写whoami在终端
阿尔弗雷德

1

尝试了此页面上的所有内容,但http://<name>.local:<PORT>仅在退出并重新启动Safari之后可以在iPhone上使用。


0

始终使用网络设置中显示的IP。当您更改位置并使用另一个无线连接时,它会更改。

以我的情况为例:10.0.0.5


您可以尝试,但并非在所有情况下都可以。您已经做出了关于网络配置的假设,但我没有在问题中看到。
benc

好吧,这个假设帮助我昨天解决了类似的问题。我找不到要连接的IP。终端命令不起作用。起作用的是网络设置中的IP。(我在Mac上运行apache本地服务器)
edgarascom,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.