本文教你如何将本地开发的 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,并确保网络与系统层面允许入站连接。
在项目根目录下,执行以下命令(将 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:800
0 即可访问。
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| 连接被拒绝 / 无法访问 | 系统防火墙拦截了端口(如 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 |
完成上述步骤后,你的 API 将真正成为局域网内可共享的开发服务,大幅提升多端协作与真机测试效率。