
本文教你如何将本地开发的 php laravel(或其他支持 `php artisan serve` 的框架)api 服务暴露到同一 wi-fi 网络下的其他电脑,解决“仅 localhost 可访问、用本机 ipv4 访问失败”的常见问题。
默认情况下,php artisan serve 仅绑定到 127.0.0.1(即 localhost),这意味着外部设备无法连接——即使它们和你处于同一局域网(如 192.168.2.x 网段)。要让其他 PC 能通过你的 IPv4 地址(例如 http://192.168.2.222:8000/api/users)成功调用 API,关键在于显式指定监听地址为本机局域网 IP,并确保网络与系统层面允许入站连接。
✅ 正确启动服务:绑定到局域网 IP
在项目根目录下,执行以下命令(将 192.168.2.222 替换为你本机实际的 IPv4 地址):
php artisan serve --host=192.168.2.222 --port=8000
? 如何查自己的 IPv4? Windows:运行 ipconfig,查找「无线局域网适配器 WLAN」下的 IPv4 地址; macOS/Linux:运行 ifconfig | grep "inet " | grep -v 127.0.0.1 或 hostname -I。
此时服务将监听 192.168.2.222:8000,而非仅 127.0.0.1:8000。另一台电脑在浏览器或 Postman 中输入 http://192.168.2.222:8000 即可访问。
⚠️ 常见失败原因与解决方案
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| 连接被拒绝 / 无法访问 | 系统防火墙拦截了端口(如 Windows Defender 防火墙) |
临时放行端口:在 PowerShell(管理员)中运行: New-NetFirewallRule -DisplayName "Laravel Dev Server" -Direction Inbound -Protocol TCP -LocalPort 8000 -Action Allow (macOS/Linux 用户需检查 ufw 或 iptables 规则) |
| 页面加载卡住 / 超时 | 路由器启用了「AP 隔离」或「客户端隔离」功能 | 登录路由器管理后台(通常为 192.168.1.1 或 192.168.0.1),关闭「无线隔离」「AP Isolation」或类似选项 |
| 返回 ERR_CONNECTION_REFUSED | 服务未真正监听该 IP,或使用了错误的 IP(如 169.254.x.x 或 127.0.0.1) | 执行 netstat -ano | findstr :8000(Windows)或 lsof -i :8000(macOS/Linux),确认监听地址是否为 192.168.2.222:8000,而非 127.0.0.1:8000 |
? 补充说明与最佳实践
- 不要绑定 0.0.0.0(除非明确需要):虽然 --host=0.0.0.0 可让服务响应所有网络接口,但会同时暴露给公网(若网络非纯内网),存在安全风险。生产环境严禁使用。
- CORS 注意事项:跨设备访问属于跨源请求,若前端(如 Vue/React)部署在另一台机器上,后端需配置 CORS 头(如 Laravel 可用 fruitcake/laravel-cors 包)。
- 替代方案(更健壮):对于长期联调,推荐使用 ngrok 或 localtunnel 生成临时公网 URL,避免网络配置依赖。
完成上述步骤后,你的 API 将真正成为局域网内可共享的开发服务,大幅提升多端协作与真机测试效率。










