
本文介绍如何将本地 laravel(或其他 php cli server)api 服务绑定到局域网可访问的 ipv4 地址,使同一 wi-fi 下的其他设备能直接通过 http://192.168.x.x:8000 访问并测试接口,解决“连接被拒绝”或“err_connection_refused”等常见问题。
默认情况下,php artisan serve(Laravel 内置服务器)仅监听 127.0.0.1(localhost),这意味着它拒绝来自本机以外所有网络接口的请求——即使另一台 PC 和你处于同一局域网(如 192.168.2.105 访问 192.168.2.222),也会因服务未监听对应网卡而返回 ERR_CONNECTION_REFUSED(正如提问中截图所示)。
✅ 正确做法是显式指定 --host 参数,将服务绑定到你的实际局域网 IPv4 地址:
php artisan serve --host=192.168.2.222 --port=8000
✅ 提示:请将 192.168.2.222 替换为你本机真实的 IPv4 地址(可通过 ipconfig(Windows)或 ifconfig / ip a(macOS/Linux)查得)。端口 --port 可选,默认为 8000。
执行后,终端将显示:
Starting Laravel development server: http://192.168.2.222:8000
此时,在局域网内另一台 PC 的浏览器或 Postman 中输入:
http://192.168.2.222:8000/api/users
即可成功调用你的 API。
⚠️ 注意事项与常见排查:
- 防火墙拦截:Windows Defender 防火墙或第三方安全软件可能阻止外部对 8000 端口的访问。临时关闭防火墙测试,或添加入站规则放行 TCP 端口 8000(推荐方案)。
- 路由器/网关限制:确保两台设备确实在同一子网(例如均为 192.168.2.x/24),而非跨 VLAN 或启用了客户端隔离(常见于公共 Wi-Fi)。
- 多网卡场景:若你有多个网络适配器(如以太网+Wi-Fi),务必使用 Wi-Fi 对应的 IPv4 地址(通常以 192.168.x.x 或 10.x.x.x 开头),而非 127.0.0.1 或 ::1。
- 非 Laravel 项目? 其他基于 PHP 内置服务器的框架(如 Slim、Lumen)同样适用该命令;Node.js 用户则需检查 app.listen() 是否绑定 0.0.0.0 而非 127.0.0.1。
? 进阶建议:
为提升协作效率,可在 package.json 或启动脚本中固化命令:
"scripts": {
"serve:lan": "php artisan serve --host=192.168.2.222 --port=8000"
}运行 npm run serve:lan 即可一键启动局域网可访问服务。
总结:核心在于服务端主动监听真实局域网 IP,而非依赖代理或端口转发。只要配置正确且防火墙放行,无需额外工具即可实现跨设备 API 测试。










