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

Laravel 7升级至Laravel 8后本地API使用192.168.x.x地址请求出现ECONNREFUSED错误的解决办法咨询

解决Laravel API无法通过局域网IP访问的问题

嘿,我来帮你搞定这个问题!你遇到的Error: connect ECONNREFUSED本质是Laravel服务默认只绑定了本地回环地址(127.0.0.1),没监听局域网的网络接口,所以用192.168.x.x访问时连不上。下面是一步步的解决办法:

  • 修改Laravel服务的监听地址
    默认的php artisan serve只会响应本地回环的请求,你需要让它监听所有可用的网络接口,启动命令改成这样:
php artisan serve --host=0.0.0.0 --port=8000

这里的8000是默认端口,如果你用了其他端口,替换成自己的就行。启动后,就能用http://192.168.x.x:8000访问你的API了。

  • 检查防火墙是否拦截了端口
    如果上面的操作后还是不行,大概率是防火墙挡住了这个端口的入站请求:

    • Windows:打开Windows Defender防火墙,添加一条入站规则,允许目标端口(比如8000)的TCP连接。
    • macOS:在系统设置的「网络」->「防火墙」里,允许终端(或你的Web服务进程)接收传入连接。
    • Linux(Ubuntu/Debian):用ufw开放端口:
      sudo ufw allow 8000/tcp
      sudo ufw reload
      
    • Linux(CentOS/RHEL):用firewalld开放端口:
      sudo firewall-cmd --add-port=8000/tcp --permanent
      sudo firewall-cmd --reload
      
  • 验证CORS配置(跨域请求场景)
    如果你的请求是从其他前端项目发起的跨域请求,还要确保Laravel的CORS规则允许局域网IP的来源。打开config/cors.php:

    • 测试阶段可以把allowed_origins设为['*'](生产环境要指定具体IP/域名),或者直接添加你的局域网IP前缀:
      'allowed_origins' => ['http://192.168.x.x:*'],
      

    修改后重启Laravel服务让配置生效。

  • 检查端口是否被占用
    有时候指定的端口可能被其他程序占用了,你可以用命令排查:

    # Windows
    netstat -ano | findstr :8000
    
    # macOS/Linux
    lsof -i :8000
    

如果发现端口被占用,要么杀掉对应进程,要么换一个端口启动Laravel服务。


内容的提问来源于stack exchange,提问作者Ian Munge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:44:06