节点Web服务器在外部不可见,但Python是(MacOS)

时间:2017-09-06 07:17:27

标签: node.js macos networking ionic2 macos-sierra

我刚开始构建一个Ionic 2应用程序,但我无法在移动设备上运行它。

Python(工作)

为了证明手机可以看到主机,我尝试了一个Python服务器:

$ python -m SimpleHTTPServer 8000
Serving HTTP on 0.0.0.0 port 8000 ...

如果我在手机上转到http://192.168.8.101:8000连接正常并显示目录列表。

节点(失败)

然而,当我开始离子时:

$ ionic serve -p 8000
[...]
[INFO] Development server running
       Local: http://localhost:8000
       External: http://192.168.8.101:8000

我可以在我的主机的网络浏览器中加载它,但我看不到它来自我的手机或其他计算机(它超时)。我还尝试了basic node server

$ npm install http-server -g
$ http-server -p 8000
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8000
  http://192.168.8.101:8000

与Ionic的结果相同:可从主机访问,但不能从手机访问。

是否有阻止请求的内容?或者是否有一些我缺少的Node配置?我是Mac OS和Node的新手,所以我不知道在哪里看。

2 个答案:

答案 0 :(得分:1)

令人尴尬的是,这被证明是一个防火墙问题。在系统偏好设置>安全与安全隐私>防火墙>防火墙选项,Node被明确设置为拒绝传入连接:

enter image description here

将其更改为允许已将其修复。呼!

答案 1 :(得分:0)

只需执行ipaddress:port,您就可以在命令行中获取IP地址。尝试使用手机上的ionic address号码,这样您就可以通过手机访问自己的网站了。

如果ionic serve --address YOUR_IP_ADDRESS 命令没有返回任何内容,则需要执行以下命令将其指向您的IP,

{{1}}

希望这有帮助!