Laravel Homestead:端口转发 1 个改进

端口转发

端口转发允许主机使用虚拟机里的服务,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。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 1

设置端口转发后,在宿主机使用telnet 192.168.10.10 5000 结果为:无法打开到主机的连接。在端口 5000: 连接失败 端口转发设置:

file 结果为:

file 为什么不起作用

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!