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
请求。我重新安装了它,现在我只能向 localhost 或 127.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 访问的主要内容,如果未能解决你的问题,请参考以下文章