在 127.0.0.1:443 上监听失败(原因:权限被拒绝)

Failed to listen on 127.0.0.1:443 (reason: Permission denied)

希望你们一切都好,

我正在为 android 开发一个 React 本机应用程序,我需要来自 laravel API 的数据,当我用 Postman 测试它时,该路由工作正常但是我的移动应用出现错误:网络错误。

我被告知这是因为我需要将我的 laravel 项目放在 https 上,所以我尝试了

php artisan serve --port=443

但我遇到了这个错误

Failed to listen on 127.0.0.1:443 (reason: Permission denied).

我真的卡住了,我不知道问题出在哪里...

谢谢大家的帮助

你这里有一堆相互影响的误解。

误解:运行 在端口 443 上会给你 HTTPS

您尝试的解决方案是让您的服务器侦听端口 443,这是 HTTPS 的默认端口。

失败是因为您运行以无权侦听该端口的用户身份连接服务器。

虽然您 可以 通过 运行 管理员权限解决该问题,但这仅意味着您 运行 在默认 HTTPS 端口上设置 HTTP 服务器。任何连接到 https://127.0.0.1/ 的内容都会出错,因为它会尝试建立加密连接并且 HTTP 服务器会感到困惑。

据我所知,Artisan 并且您必须改用代理服务器。

如果您沿着这条路线走下去,那么您可以 运行 在任何端口上同时使用 Artisan 和 HTTPS 代理。您可以在 https:// URL 中移植端口号,就像在 http:// URL.

中一样

误解:您需要 HTTPS

当您尝试从移动应用程序连接时遇到网络错误错误。

虽然有些事情需要 HTTPS,但加载网页并不是其中之一,而且通常会在错误日志中明确要求使用 HTTPS。

真正的原因很可能是因为服务器正在侦听 127.0.0.1localhost。无法从另一台计算机访问它。

解决方案

在不同的网络接口上侦听

您可以在 LAN-facing IP 地址上的 non-privileged 端口上侦听,然后 LAN 上的任何设备都可以连接到它。

php artisan serve --host 192.168.1.101 --port 8000

确保将主机替换为属于您计算机的 IP 地址!

使用代理

ngrok 这样的服务将在 public 互联网上公开您的本地(仅在本地主机上侦听)服务(如果需要,通过路由器上的任何 NAT 建立隧道),几乎任何人都可以访问它设备。

喜欢的话可以同时用HTTPS包起来