json-server 无法通过本地 IP 访问

Posted

技术标签:

【中文标题】json-server 无法通过本地 IP 访问【英文标题】:json-server cannot access via local IP 【发布时间】:2018-12-04 05:02:01 【问题描述】:

我正在使用来自here 的npm json-server。它曾经非常适合我的需求:在我的 PC 上运行服务器并对本地 IP (192.168.1.XX) 执行 GET 请求。我重新安装了它,现在我只能向 localhost127.0.0.1 发出请求。不能再向本地 IP (cmd ipconfig) 发出请求。我收到此错误:

正如@fvu 提到的here

这意味着服务器软件被配置为仅在 localhost 接口上侦听。这是一个配置项,为了避免暴露潜在的不安全服务器,许多服务器程序预先配置为仅在 localhost 上侦听。

那么有没有办法通过本地 IP 访问这个服务器,只要 json-server 没有一些额外的参数来启用/禁用它?

【问题讨论】:

这个解决方案对我不起作用。 this issue for me has been solved with this solution 【参考方案1】:

我找到了解决这个问题的方法:

json-server --host 192.168.1.XXX my_file.json

使用此命令,服务器部署在我的本地 IP 上,Windows 请求防火墙例外。

另一个解决方案是切换到.NET server - 另一个免费的简单假服务器,我可以在其中将本地 IP 设置为端点。

一切都需要:

    install .NET

    使用 CMD 命令:

       git clone https://github.com/ttu/dotnet-fake-json-server.git
       cd dotnet-fake-json-server/FakeServer
       dotnet run [--file] [--urls]
    
        #like so in my case:
        dotnet run --file_data.json --urls http://192.168.1.192:57602
    

【讨论】:

json-server 的主机参数正是我所需要的。谢谢!【参考方案2】:

如果您将使用相同的设备,请使用本地主机:

json-server --watch filename.json

localhost IP 是 127.0.0.1 所以,你可以通过 2 种方式访问​​这个 filename.json, 通过

    http://localhost:8000/filename.json http://127.0.0.1:8000/filename.json

如果您想从另一台计算机/移动设备访问本地主机,请放置您计算机的 IPV4 地址

json-server --host 192.168.0.xx 文件.json

您还可以使用以下命令分配您自己的端口号

json-server --host 192.168.0.xx file.json --port 4000

然后在使用同一网络连接的任何设备上运行它

    http://192.168.0.xx:4000/file.json

最后,如果你不明白我是从哪里获取这个主机 IP 的, 转到 命令提示符 > config /all 并查找 IPv4 地址,将该地址复制粘贴到此 URL,记住设备应位于同一网络上才能访问此 IP。

【讨论】:

【参考方案3】:

另一个对我有用的选项:

json-server -H 0.0.0.0 -p 3000 -w db.json

注意:您需要通过防火墙为 TCP/UDP 启用端口 3000。像这样的

sudo ufw allow 3000

【讨论】:

我认为,控制面板 -> 安全中心 -> Windows 防火墙 -> 例外 -> 添加端口(或类似) 如果您的主机从 ip 更改,那就太完美了。这是最好的解决方案?【参考方案4】:

这是另一种对我有用的方法。如果您使用本地 LAN IP(例如 192.168.1.45)启动 json-server,则可以使用 IP 地址访问服务器(但由于某种原因不能访问 localhost)。比如……

json-server [insert your JSON file] --host [insert your LAN IP]

希望有帮助!

【讨论】:

【参考方案5】:

我的假 json-server 在 vagrant 机器上运行为 192.168.100 我正在使用 React 应用程序来使用它并遇到同样的问题,所以我在我的 vagrant 机器(来宾操作系统)上运行这个命令,之后一切正常。即我可以像这样访问我的 API

192.168.1.100/tasks


npx json-server --watch db.json --port 8000 -H 192.168.1.100

这里的 db.json 是我的由 JSON 组成的数据文件 端口是 8000 主机是 192.168.1.100,这是我的服务器/流浪机器的 IP 地址

别忘了在防火墙上允许端口 (Linux)

sudo ufw allow 8000

【讨论】:

【参考方案6】:

在命令行中输入:

npx json-server <folder/filename> --port <whatever port you want>

我用过这个,例如:

npx json-server api/db.json --port 3000 

【讨论】:

以上是关于json-server 无法通过本地 IP 访问的主要内容,如果未能解决你的问题,请参考以下文章

自动获取IP是时。显示本地连接无访问权限

json-server30秒无代码搭建一个完整的REST API服务-基础入门

win7电脑本地连接黄色感叹号,未识别的网络,无网络访问

电脑ip无网络访问权限怎么办

无法通过本地网络中的公共 IP 地址访问我的 XAMPP

无法从 json-server 获取嵌套的对象数组