关于别的电脑访问node.js建的服务器的问题
发布于 6 年前 作者 michaeljunlove 30817 次浏览 最后一次编辑是 4 年前 来自 问答

我在自己电脑上搭建了nodejs+websocket环境,并且做了一个小应用,想在局域网内的其他电脑上访问到这个应用,怎么实现呢? 我尝试了一下,在别的电脑上的浏览器中国输入服务器的IP+端口号,但是不可以,正在思考问题出在哪了

16 回复

ping 一下,看能不能找到。

ip对吗,内网IP。

ping 过了的,是通的。访问的地址是192.168.1.133:3000,但是在浏览器中就是访问不到,很是奇怪啊

贴代码. websocket 监听端口是 0.0.0.0, 确认下.

linux?被防火墙阻止了?

找到原因了,之前在.listen中还有一个IP的参数,去掉就可以了 var server = http.createServer(function (req, res) { fs.readFile(’./index.html’, function(error, data) { res.writeHead(200, { ‘Content-Type’: ‘text/html’ }); res.end(data, ‘utf-8’); }); }).listen(3000);

server.listen(port, [hostname], [backlog], [callback]) 如果省略主机名,服务器会接收指向任意IPv4地址的链接 如果指定hostname是127.0.0.1的话,就只可以本机可以访问了

@fengxiaolong ,是的,初学,没了解这个参数的作用

@michaeljunlove 如四楼指出的,用 0.0.0.0 就好了。

@michaeljunlove 192.168.1.133:3000是局域网里。这个我也实现了。但是我在想怎么才能让外网的,即广域网中的人进入服务器?我查了路由做端口映射,外网ip,内网ip相关知识,但是还是没有解决。

@pageye123 是想让这个项目可以在外网可以访问?

@pageye123 你首先要确定你的路由拥有公网IP,有些小区宽带神马的,给你路由分配的还是一个内网的IP。你可以进路由器,看下路由器的分配到的IP,再打开http://www.ip138.com/,上面会显示你实际在公网中的IP,对比一下,如果是一样的,说明你是有公网IP的。 有公网IP 端口转发是可以的,配合动态域名工具。配置起来不会太麻烦。 无公网IP 这个貌似有一些第三方的服务可以实现类似中转的功能,貌似是国外的速度堪虞。或者你有自己的公网服务器,也可以通过服务器作中转,直接暴露本地的服务到公网。配置起来也费些手脚,不过作演示或者开发测试(如微信开发)倒是有些作用。

@klesh 非常感谢,这个很有帮助。以前分不清公网,内网

推荐一下 ngrok,可以把内网部署的网站导到外网上去,做测试,演示啥的很方便。

https://ngrok.com/ ./ngrok http [port number]

Screen Shot 2015-08-18 at 12.05.04 PM.png

// debug 为 true 时,用于本地调试 没设置成false,是不是跟这个有关系啊?我公网也访问不了 // redis 配置,默认是本地 redis_host: ‘127.0.0.1’, redis_port: 6379, redis_db: 0,

回到顶部