You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无互联网时同一局域网设备能否通过Chrome访问另一设备托管的HTTP服务

问题结论

你的需求完全可以实现,局域网内设备通信不需要互联网接入,访问失败是配置问题导致的,按照以下步骤排查即可解决。

1 代码层面修正

你贴的代码如果是完整运行版本,缺少Node.js核心模块引入,要在代码最开头加上两行:

const http = require('http')
const fs = require('fs')

如果需要服务绑定设备所有网卡IP,适配网络切换场景,可以将host值改为0.0.0.0,避免切换网络后原有绑定IP失效。
修正后的完整参考代码如下:

const http = require('http')
const fs = require('fs')
const host = '0.0.0.0';
const port = 8000;

const requestListener = function(req, res) {
    fs.readFile("./index.html", 'utf8', function(err, contents) {
        if (err) {
            res.writeHead(500);
            res.end(err);
            return;
        } else {
            res.setHeader("Content-Type", "text/html");
            res.writeHead(200);
            res.end(contents);
        }
    });
}

const server = http.createServer(requestListener);

server.listen(port, host, () => {
    console.log(`Server is running on http://${host}:${port}`);
});
2 基础配置校验
  • 确认访问时输入的IP和端口完全匹配服务绑定的参数:注意你描述里的192.186.xxx.xxx是输入错误,正确私网网段为192.168开头,和你代码里绑定的192.168.4.2保持一致。
  • 确认服务端和客户端处于同一局域网网段:比如服务端IP为192.168.4.2,客户端IP也应为192.168.4.x,前三位网段号一致。
  • 确认局域网未开启AP隔离:部分路由器的AP隔离功能会禁止同WiFi下设备互相通信,可进入路由器管理界面关闭该功能。
3 连通性测试

先在客户端设备上执行 ping 命令测试网络连通:

ping 192.168.4.2

如果ping不通,优先排查局域网组网问题,确认两台设备连的是同一个有线/无线网络。
如果ping得通,继续测试端口连通性:

telnet 192.168.4.2 8000

如果端口连不上,大概率是防火墙拦截导致。

4 防火墙与代理配置排查

你提到的防火墙、代理设置都是常见诱因,按以下顺序排查:

  • 服务端防火墙:Windows系统默认会拦截外部访问8000端口,可临时关闭Windows Defender防火墙测试,验证通过后添加入站规则放通TCP 8000端口即可。Linux/macOS系统也需对应放通8000端口的入站规则。
  • 客户端代理:如果Chrome开启了系统代理或者代理插件,内网IP的请求会被转发到代理服务器,无互联网环境下就会提示无网络。可关闭Chrome代理,或者将192.168.0.0/16网段添加到代理的例外列表中。

内容的提问来源于stack exchange,提问作者aka.Calamaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:54:04