You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laradock本地开发:如何结合hosts文件使用ngrok?

解决Laradock与ngrok配合时的隧道连接失败问题

你碰到的Failed to complete tunnel connection报错,核心原因是ngrok和Laradock的Nginx服务之间的主机头匹配或者端口映射没对齐——毕竟你的site.test本地能正常访问,说明本地服务本身是没问题的,咱们从这几个方向排查:

  • 确认Laradock Nginx的端口映射是否正确
    Laradock默认会把容器内Nginx的80端口映射到主机的80端口,但如果你的docker-compose.yml里修改过端口配置(比如改成了8080),那ngrok命令里的端口就得同步调整。比如主机访问site.test用的是http://site.test:8080,那命令应该改成:

    ngrok http -host-header=site.test 8080
    

    你可以先查看Laradock根目录下的docker-compose.yml里Nginx服务的ports字段,确认主机侧的端口号。

  • 检查Nginx站点配置的server_name是否匹配
    进入Laradock的Nginx容器,找到site.test对应的配置文件(通常在/var/www/nginx/sites/site.test.conf),确认server_name字段的值是site.test,不能有拼写错误或者额外的后缀(比如.local)。如果这里不匹配,ngrok携带的主机头就无法被Nginx识别,导致连接失败。
    进入容器的命令参考:

    docker exec -it laradock_nginx_1 bash
    
  • 尝试使用rewrite模式的主机头参数
    有时候单纯指定-host-header=site.test可能会有头信息转发的问题,换成--host-header=rewrite site.test参数,强制重写请求的主机头,命令调整为:

    ngrok http --host-header=rewrite site.test 80
    

    (同样,端口号根据你的实际映射情况调整)

  • 排查本地防火墙或网络环境干扰
    虽然site.test能本地访问,但防火墙可能拦截了ngrok的代理请求。可以临时关闭本地防火墙测试,或者在防火墙规则里允许ngrok访问对应端口。另外,如果是在公司内网,可能存在代理或网关限制,切换到手机热点试试能不能正常建立隧道。

  • 更新ngrok到最新版本
    旧版本的ngrok可能存在兼容性问题,下载最新版替换现有版本,再重新执行命令试试。

内容的提问来源于stack exchange,提问作者Mick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:57:34