
本文详解如何将本地开发的 laravel(或其他 php cli server)api 服务暴露到同一 wi-fi 网络下的其他设备,核心是使用 `php artisan serve --host=192.168.x.x` 绑定真实局域网 ip,并规避防火墙与跨域常见问题。
在本地开发中,php artisan serve 默认仅监听 127.0.0.1(即 localhost),这意味着服务仅对本机可见,其他设备即使在同一 Wi-Fi 下也无法访问——这正是你遇到 ERR_CONNECTION_REFUSED 或类似网络错误(如截图所示)的根本原因。
要让其他 PC(例如同事的笔记本或手机)通过你的局域网 IPv4 地址(如 192.168.2.222)成功调用 API,需完成以下关键步骤:
✅ 1. 启动服务时显式绑定局域网 IP
不要依赖默认命令,必须指定 --host 参数为你的实际内网 IPv4 地址(可通过 ipconfig(Windows)或 ifconfig / ip a(macOS/Linux)确认):
php artisan serve --host=192.168.2.222 --port=8000
? 提示:--port 可选,默认为 8000;确保该端口未被其他程序占用。启动后终端会显示 Starting Laravel development server: http://192.168.2.222:8000 —— 此 URL 即为其他设备应访问的地址。
✅ 2. 关闭或配置系统防火墙
Windows Defender 防火墙、macOS 防火墙或第三方安全软件可能拦截入站连接。临时验证可先关闭防火墙(仅测试用),生产环境务必添加精确规则:
- Windows:进入「Windows 安全中心 → 防火墙和网络保护 → 允许应用通过防火墙」→ 勾选 php.exe(或手动放行端口 8000 TCP)。
- macOS:「系统设置 → 隐私与安全性 → 防火墙 → 防火墙选项」→ 添加 php 或允许端口。
-
Linux(ufw):
sudo ufw allow 8000/tcp
✅ 3. 验证与调试技巧
- 在目标 PC 浏览器中直接访问 http://192.168.2.222:8000/api/test(替换为你的真实路由),应返回预期响应;
- 使用 curl 快速测试连通性:
curl -v http://192.168.2.222:8000/api/version
- 若仍失败,检查:
- 两台设备是否确实在同一子网(如均为 192.168.2.x);
- 路由器是否启用「AP 隔离」(Client Isolation)功能(部分公共 Wi-Fi 会开启,需在路由器后台关闭);
- 是否误用 localhost 或 127.0.0.1 替换 IP —— 这些在其他设备上永远无法解析为你本机。
⚠️ 注意事项与进阶建议
- Laravel 的 CORS 限制:即使网络可达,前端跨域请求仍可能被浏览器拦截。若调用方是网页应用,请安装 fruitcake/laravel-cors 并配置允许 * 或指定来源;
-
非 Laravel 项目? 类似原理适用于任何基于 PHP 内置服务器的框架(如 Slim、Lumen),命令统一为:
php -S 192.168.2.222:8000 -t public/
- 长期测试推荐:php artisan serve 仅为开发用途,不适用于高并发或稳定外网访问。正式联调建议使用 Laravel Valet(macOS)、Laravel Sail(Docker)或 Nginx + PHP-FPM 组合。
只要正确绑定 IP 并放行端口,局域网 API 调试即可秒级生效——无需改代码、无需部署、无需公网 IP。










