Laravel Homestead:端口转发
端口转发
端口转发允许主机使用虚拟机里的服务,Homestead 默认转发了一些端口。例如虚拟机提供的 SSH 服务,虚拟机里监听的端口是 22,转发到主机的 2222 端口,访问虚拟机时可以使用 -p
设置端口:
> ssh vagrant@127.0.0.1 -p 2222
所有端口
默认情况下,如下的端口将转发到你的 Homestead 环境:
- SSH:2222 -> 转发到 22
- ngrok UI:4040 -> 转发到 4040
- HTTP:8000 -> 转发到 80
- HTTPS:44300 -> 转发到 443
- MySQL:33060 -> 转发到 3306
- PostgreSQL:54320 -> 转发到 5432
- MongoDB:27017 -> 转发到 27017
- Mailhog:8025 -> 转发到 8025
- Minio:9600 -> 转发到 9600
转发额外的端口
你可以转发额外的端口到 Vagrant 盒子,同时也指定他们的协议:
~/Homestead/Homestead.yaml
# 端口转发
ports:
- send: 50000 # 主机端口
to: 5000 # 虚拟机端口
- send: 7777
to: 777
protocol: udp # 端口转发类型
如有修改,切记在 主机 中使用以下命令应用修改到 Homestead 虚拟机中:
> vagrant reload --provision
区分主机与虚拟机端口
需要区分主机和虚拟机端口,虚拟机里监听的默认是常用的端口,转发到主机的端口才是自定义的。
例如:
> ssh vagrant@127.0.0.1 -p 2222
以上命令连接的是主机的 2222
端口,此端口会转发到虚拟机监听的 22
端口。假如你使用虚拟机的 IP 来连接的话,则直接使用默认端口即可,如下命令与上面的命令是一致的:
> ssh vagrant@192.168.10.10
因为我们连接虚拟机时是使用 SSH 的默认端口 22
,故无需指定。另 192.168.10.10
乃常用的配置于 Homestead.yaml
中的虚拟机 IP。
设置端口转发后,在宿主机使用telnet 192.168.10.10 5000 结果为:无法打开到主机的连接。在端口 5000: 连接失败 端口转发设置: