最新版Laravel Homestead环境中Mailhog服务无法正常访问问题咨询
问题根因
你遇到的问题是Laravel Homestead Settler v11.4.0版本的默认Mailhog配置变更导致的,具体有两个核心原因:
- 11.4.0版本调整了Mailhog系统服务的监听地址,HTTP接口默认只绑定虚拟机本地回环地址
127.0.0.1:8025,不再监听0.0.0.0,导致宿主机的请求无法被虚拟机内的Mailhog服务接收。 - 该版本随带的Ubuntu 20.04系统默认开启了ufw防火墙,默认未放通8025端口的入站规则,也会导致宿主机访问失败。
你之前看到的1025端口占用提示属于正常现象:所有版本的Homestead默认都会将Mailhog设为开机自启的系统服务,你手动执行mailhog命令时,SMTP端口已经被后台运行的服务占用,所以会报错,不影响后台服务的正常运行。之前的旧版本可以正常访问,是因为旧版本的Mailhog服务默认绑定0.0.0.0,且防火墙默认放通了8025端口。
修复方案
按以下步骤操作即可恢复正常访问:
- 进入Homestead虚拟机
vagrant ssh
- 编辑Mailhog的systemd服务配置文件
sudo nano /etc/systemd/system/mailhog.service
- 修改
ExecStart配置行,指定监听所有网卡地址:
ExecStart=/usr/bin/mailhog -api-bind-addr 0.0.0.0:8025 -smtp-bind-addr 0.0.0.0:1025
保存退出后执行以下命令重载配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart mailhog
- 可选:如果还是无法访问,执行以下命令放通防火墙8025端口:
sudo ufw allow 8025/tcp
- 可选:如果是多环境并行部署,建议在对应环境的
Homestead.yaml中明确添加端口转发规则,避免端口冲突:
ports: - send: 8025 to: 8025
操作完成后重启Homestead,再访问http://localhost:8025即可正常打开Mailhog界面。
内容的提问来源于stack exchange,提问作者Pathros
相关产品推荐
相关产品推荐

