Laravel开发服务本地/公网IP无法访问问题求助
Laravel Artisan Serve 局域网访问失效排查方案
以下是针对问题的排查步骤,按顺序尝试:
确认Artisan服务的监听IP
执行netstat -tulpn | grep 8000,检查输出里的监听地址是不是0.0.0.0:8000。如果显示的是127.0.0.1:8000,说明服务只绑定了本地回环,局域网设备无法访问,需要重新执行php artisan serve --host 0.0.0.0启动服务,确保命令没有报错。检查防火墙规则
卸载Apache安装Nginx的过程中,防火墙规则可能被修改。执行ufw status查看防火墙状态:- 如果防火墙处于激活状态,确认是否存在允许8000端口的规则,没有的话执行
sudo ufw allow 8000添加规则。 - 若使用iptables,执行
iptables -L -n | grep 8000,确保有针对8000端口的ACCEPT规则,没有则手动添加。
- 如果防火墙处于激活状态,确认是否存在允许8000端口的规则,没有的话执行
排查Nginx的端口干扰
虽然Artisan用8000端口,但检查Nginx配置是否意外占用或干扰该端口:- 查看Nginx配置文件(如
/etc/nginx/sites-available/default),确认没有listen 8000;的配置项。 - 执行
netstat -tulpn | grep nginx,查看Nginx实际监听的端口,确保和8000无冲突。
- 查看Nginx配置文件(如
验证局域网设备连通性
在手机上尝试ping服务端IP192.168.0.150:- 如果ping不通,检查路由器是否开启了AP隔离功能(部分路由器默认开启,会阻止同一WiFi下设备互访),进入路由器管理界面关闭该功能。
- 确认手机和服务端处于同一网段(手机IP应为
192.168.0.x)。
重置端口转发(公网访问场景)
若局域网访问恢复后公网仍无法访问:- 检查路由器的端口转发规则,确认规则指向的IP仍是
192.168.0.150、端口为8000,且规则未被禁用。 - 部分运营商会封禁8000这类非标准端口,可尝试将Artisan服务改为监听80或443端口(需
sudo权限,如sudo php artisan serve --host 0.0.0.0 --port 80),再调整端口转发规则。
- 检查路由器的端口转发规则,确认规则指向的IP仍是
重启相关服务与网络
尝试重启Artisan服务、Nginx服务(sudo systemctl restart nginx)、路由器,或重启服务端的网络服务(sudo systemctl restart networking),排除临时配置缓存问题。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

