json-服务器无法通过本地IP访问
json-server cannot access via local IP
我正在使用 here 中的 npm json-server
。它曾经非常适合我的需要:运行 我 PC 上的服务器并向本地 IP (192.168.1.XX) 发送 GET
请求。我重新安装了它,现在我只能向 localhost 或 127.0.0.1 发送请求。无法再向本地 IP (cmd ipconfig) 发出请求。我收到此错误:
如@fvu 所述
this means that the server software is configured to listen on the localhost interface only. This is a configuration item and to avoid exposing a potentially unsecure server many server programs come preconfigured to listen on localhost only.
那么,只要 json-server 没有 enable/disable 的一些额外参数,有没有办法通过本地 IP 访问此服务器?
我找到了这个问题的解决方案:
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
这是另一种对我有用的方法。如果您使用本地 LAN IP(例如 192.168.1.45)启动 json-server,您可以使用 IP 地址访问服务器(但由于某种原因不能访问 localhost)。例如...
json-server [insert your JSON file] --host [insert your LAN IP]
希望对您有所帮助!
本地主机,如果您将使用相同的设备:
json-server --watch filename.json
localhost IP 是 127.0.0.1 所以,你可以通过 2 种方式访问这个 filename.json,
通过
如果您想从另一个 computer/mobile 设备访问本地主机,请输入您计算机的 IPV4 地址
json-server --host 192.168.0.xx file.json
您还可以使用以下命令分配您自己的端口号:
json-server --host 192.168.0.xx file.json --port 4000
然后 运行 它在使用
连接到同一网络的任何设备上
最后,如果你不明白我从哪里获取这个主机 IP,
转到 命令提示符 > 配置 /all 并查找 IPv4 地址,将该地址复制粘贴到此 URL,请记住设备应该在同一网络上访问此 IP。
另一个对我有用的选项:
json-server -H 0.0.0.0 -p 3000 -w db.json
注意:您需要通过防火墙为 TCP/UDP 启用端口 3000。像这样
sudo ufw allow 3000
在命令行中输入:
npx json-server <folder/filename> --port <whatever port you want>
我用过这个,例如:
npx json-server api/db.json --port 3000
我的假 json-server 在 vagrant 机器上 运行ning 作为 192.168.100
我正在使用 React 应用程序来使用它并遇到同样的问题,所以我 运行 在我的流浪机器(来宾 OS)上执行此命令,此后一切正常。即我可以像这样访问我的 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,这是我的 server/vagrant 机器
的 IP 地址
并且不要忘记在防火墙上允许端口 (Linux)
sudo ufw allow 8000
我正在使用 here 中的 npm json-server
。它曾经非常适合我的需要:运行 我 PC 上的服务器并向本地 IP (192.168.1.XX) 发送 GET
请求。我重新安装了它,现在我只能向 localhost 或 127.0.0.1 发送请求。无法再向本地 IP (cmd ipconfig) 发出请求。我收到此错误:
如@fvu 所述
this means that the server software is configured to listen on the localhost interface only. This is a configuration item and to avoid exposing a potentially unsecure server many server programs come preconfigured to listen on localhost only.
那么,只要 json-server 没有 enable/disable 的一些额外参数,有没有办法通过本地 IP 访问此服务器?
我找到了这个问题的解决方案:
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
这是另一种对我有用的方法。如果您使用本地 LAN IP(例如 192.168.1.45)启动 json-server,您可以使用 IP 地址访问服务器(但由于某种原因不能访问 localhost)。例如...
json-server [insert your JSON file] --host [insert your LAN IP]
希望对您有所帮助!
本地主机,如果您将使用相同的设备:
json-server --watch filename.json
localhost IP 是 127.0.0.1 所以,你可以通过 2 种方式访问这个 filename.json, 通过
如果您想从另一个 computer/mobile 设备访问本地主机,请输入您计算机的 IPV4 地址
json-server --host 192.168.0.xx file.json
您还可以使用以下命令分配您自己的端口号:
json-server --host 192.168.0.xx file.json --port 4000
然后 运行 它在使用
连接到同一网络的任何设备上最后,如果你不明白我从哪里获取这个主机 IP, 转到 命令提示符 > 配置 /all 并查找 IPv4 地址,将该地址复制粘贴到此 URL,请记住设备应该在同一网络上访问此 IP。
另一个对我有用的选项:
json-server -H 0.0.0.0 -p 3000 -w db.json
注意:您需要通过防火墙为 TCP/UDP 启用端口 3000。像这样
sudo ufw allow 3000
在命令行中输入:
npx json-server <folder/filename> --port <whatever port you want>
我用过这个,例如:
npx json-server api/db.json --port 3000
我的假 json-server 在 vagrant 机器上 运行ning 作为 192.168.100 我正在使用 React 应用程序来使用它并遇到同样的问题,所以我 运行 在我的流浪机器(来宾 OS)上执行此命令,此后一切正常。即我可以像这样访问我的 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,这是我的 server/vagrant 机器
的 IP 地址并且不要忘记在防火墙上允许端口 (Linux)
sudo ufw allow 8000