无法从LAN上的其他计算机访问OS X 10.11上的Node.js服务器

时间:2016-04-30 18:34:14

标签: node.js macos

我之前已经看过这个问题,但没有一个建议正在为我解决。我意识到这个问题已被问及通常的答案是防火墙(检查),确保你正在监听所有接口(完成,.listen(端口,'0.0.0.0')),并确保没有其他东西正在使用该端口(没有是的,我尝试过其他端口。)

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

未启用防火墙且计算机上的其他网络服务(如文件共享)正常工作。 OS X中除了可能阻止入站http的防火墙之外还有什么东西吗?

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

1 个答案:

答案 0 :(得分:0)

虽然解决方案并不理想,但我修好了它。

我在WAN上为端口1337添加了一个端口转发规则,以指向内部IP 192.168.1.148。然后,从网络上的其他设备,我可以在端口1337上点击路由器的WAN IP,然后我得到服务器响应。

这个路由器(Linksys EA3500 N750)似乎阻止了各种局域网流量,我找不到禁用它的方法(没有AP隔离设置可以关闭)。所以我想我会说如果你做网络开发,这不是你的路由器,但是如果你已经找到了自己的方式,这就是一个可以让你继续工作的工作。

感谢大家帮我解决问题,至少可以找出问题所在!如果有人有任何想法,仍然会对一个不太讨厌的解决方案感兴趣。