2016-04-30 119 views
0

以前我见过这个问题,但没有任何建议正在为我解决这个问题。我意识到这个问题已经被问到,通常的答案是防火墙(检查),确保你正在监听所有接口(done,.listen(port,'0.0.0.0')),并确保没有别的东西在使用端口是,我试过其他港口)。无法从局域网上的其他计算机访问OS X 10.11上的Node.js服务器

我运行以下节点服务器,并且我可以从本地机器(仅使用localhost或本机的IP)中击中它,但网络上没有其他计算机可以访问它(请求只是超时)。

未启用防火墙,机器上的其他网络服务(如文件共享)正常工作。除了可能阻止入站http的防火墙之外,OS X中是否有某些内容?

var http= require ('http'); 
var port=1337; 

http.createServer(function (req, res) { 
    res.writeHead(200, { 
     'ContentType':'text/plain' 
    }) 
    res.end("Hello!"); 
}).listen(port, '0.0.0.0'); 


console.log('Server started on port:'+port); 

的ifconfig输出:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 
    options=3<RXCSUM,TXCSUM> 
    inet6 ::1 prefixlen 128 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    nd6 options=1<PERFORMNUD> 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 
stf0: flags=0<> mtu 1280 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether a8:66:7f:30:be:34 
    inet6 fe80::aa66:7fff:fe30:be34%en0 prefixlen 64 scopeid 0x4 
    inet 192.168.1.148 netmask 0xffffff00 broadcast 192.168.1.255 
    nd6 options=1<PERFORMNUD> 
    media: autoselect 
    status: active 
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304 
    ether 0a:66:7f:30:be:34 
    media: autoselect 
    status: inactive 
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484 
    ether 56:a5:ec:34:2f:fc 
    inet6 fe80::54a5:ecff:fe34:2ffc%awdl0 prefixlen 64 scopeid 0x6 
    nd6 options=1<PERFORMNUD> 
    media: autoselect 
    status: active 
+0

如果你尝试在你的机器上运行一些其他的http服务器,你可以试试'python -m SimpleHTTPServer 8000'来监听端口'8000'。只是为了验证问题是否与您的nodejs代码 – Yerken

+0

伟大的事情来检查诊断 - 谢谢,但同样的问题。然后,可以从本地机器使用IP打到它就好(我得到默认目录列表),但其他机器无法击中它。它真的好像是一个防火墙问题,但“安全和隐私”中的防火墙肯定是关闭的。 – WillyC

+0

你确定你打的是正确的内部IP地址吗?你也可以尝试使用你自己的机器,防火墙很少阻塞ICMP数据包。发布输出 – Yerken

回答

0

我固定它虽然该解决方案是不理想的。

我在WAN上为端口1337添加了端口转发规则,以指向内部IP 192.168.1.148。然后,从网络上的其他设备,我可以通过端口1337访问路由器的WAN IP,并获得服务器响应。 (Linksys EA3500 N750)似乎阻止了各种局域网流量,我无法禁用它(没有AP隔离设置关闭)。所以我想我会说,如果你做网络开发,这不是你的路由器,但如果你找到了你的方式,这是一个解决方案,可以让你继续工作。

感谢大家帮我排除故障,至少隔离出问题的原因!如果有人有任何想法,仍然会对不太冒头的解决方案感兴趣。

相关问题