
本文详解如何将本地开发的 php laravel(或其他基于 artisan 的 php 应用)api 服务暴露至同一 wi-fi 网络下的其他设备,解决 `php artisan serve` 默认仅绑定 127.0.0.1 导致外部无法访问的问题,并提供防火墙、端口及调试关键注意事项。
默认情况下,php artisan serve 命令仅监听 127.0.0.1:8000(即 localhost),这意味着它拒绝来自本机以外任何 IP 的连接请求——即使另一台 PC 与你处于同一局域网(如 192.168.2.x 网段),直接用 http://192.168.2.222:8000/api/users 访问也会失败,并可能触发浏览器“连接被拒绝”或“ERR_CONNECTION_REFUSED”错误(正如你截图中所示)。
要使 API 可被局域网内其他设备访问,核心操作是:显式指定 --host 参数,将服务绑定到本机实际的局域网 IPv4 地址(而非 localhost)。以你的 IP 192.168.2.222 为例:
php artisan serve --host=192.168.2.222 --port=8000
✅ 执行后,服务将监听 192.168.2.222:8000,此时同网络下的任意设备(如 Windows 笔记本、Mac 或手机)均可通过浏览器或 Postman 访问:
http://192.168.2.222:8000/api/test
⚠️ 注意事项与常见问题排查:
确保 IP 地址准确:运行 ipconfig(Windows)或 ifconfig / ip a(macOS/Linux)确认当前 Wi-Fi 网卡分配的 IPv4 地址(非 127.0.0.1 或 169.254.x.x)。若 IP 变更(如重启路由器),需同步更新 --host 值。
检查防火墙设置:Windows Defender 防火墙或 macOS 防火墙可能拦截入站连接。临时关闭防火墙测试;若成功,建议添加入站规则放行 TCP:8000 端口(Windows:控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → TCP 8000)。
避免使用 0.0.0.0 绑定(不推荐初学者):虽然 --host=0.0.0.0 可监听所有接口,但会暴露服务至潜在公网(若网络配置不当),且部分系统/防火墙策略更严格。明确指定局域网 IP 更安全、可控。
端口冲突?可自定义端口:若 8000 被占用,添加 --port=8080 指定其他端口,并确保该端口同样在防火墙中放行。
CORS 问题 ≠ 连接问题:本文解决的是「网络层连通性」;若连接成功但前端报 CORS 错误(如 Access-Control-Allow-Origin),则需在 Laravel 中配置 fruitcake/laravel-cors 或中间件,这属于应用层问题,与 artisan serve 绑定无关。
总结:跨设备测试本地 API 的关键一步,就是让开发服务器主动监听局域网 IP,而非默认的 localhost。一条命令即可生效,再辅以基础防火墙校验,即可快速构建多端联调环境。










