
本文教你如何将本地 laravel 开发服务器绑定到局域网可见的 ipv4 地址(如 192.168.2.222),使同一 wifi 下的其他设备能直接访问并测试你的 api,解决“connection refused”或“unable to connect”等常见错误。
默认情况下,php artisan serve 仅监听 127.0.0.1(即 localhost),这意味着它拒绝来自外部设备(如另一台 PC 或手机)的连接——即使它们在同一 WiFi 网络中。要让 API 可被局域网内其他设备访问,必须显式指定监听地址为本机的局域网 IPv4 地址,并确保网络与系统层面允许该连接。
✅ 正确启动方式:绑定到局域网 IP
在项目根目录下,运行以下命令(将 192.168.2.222 替换为你本机实际的 IPv4 地址):
php artisan serve --host=192.168.2.222 --port=8000
? 提示:可通过 ipconfig(Windows)或 ifconfig / ip a(macOS/Linux)确认本机 IPv4 地址(通常位于 Wi-Fi 或 wlan0 网卡段,形如 192.168.x.x 或 10.0.x.x)。切勿使用 127.0.0.1 或 localhost。
启动成功后,终端会显示:
Laravel development server started: http://192.168.2.222:8000
此时,在另一台电脑浏览器中输入 http://192.168.2.222:8000/api/your-endpoint 即可直接调用你的 API。
⚠️ 常见问题与解决方案
-
错误:Connection refused 或无法加载页面
→ 检查 Windows/macOS 防火墙是否阻止了 php 或端口 8000:- Windows:进入「Windows Defender 防火墙」→「高级设置」→「入站规则」→ 新建规则,允许 TCP 端口 8000;
- macOS:系统设置 → 隐私与安全性 → 防火墙 → 防火墙选项 → 允许 php 进程通信。
-
错误:Address already in use
→ 表明端口被占用,可更换端口(如 --port=8080),或先终止占用进程:# Windows(查找并结束 PID) netstat -ano | findstr :8000 taskkill /PID
/F # macOS/Linux lsof -i :8000 kill -9 -
仍无法访问?验证基础连通性
在客户端 PC 上执行:ping 192.168.2.222 telnet 192.168.2.222 8000 # 若无 telnet,可用 nc -zv 192.168.2.222 8000
若 ping 通但 telnet 失败,说明服务未正确监听或被防火墙拦截。
? 安全提醒(重要!)
php artisan serve 仅适用于开发环境,不适用于生产部署。绑定局域网 IP 后,任何能访问该 IP 的设备均可请求你的 API —— 请确保:
- 不在公网暴露此服务;
- 避免在调试期间启用敏感接口(如 /api/admin/delete-all);
- 调试完成后及时关闭服务(Ctrl + C)。
✅ 总结
只需一条命令即可实现跨设备 API 测试:
php artisan serve --host=<你的局域网IPv4> --port=<自选端口>
配合防火墙放行与基础网络诊断,95% 的“局域网访问失败”问题都能快速解决。记住:不是改前端请求地址,而是让后端服务主动“走出 localhost”。










