gpt4 book ai didi

web - Vagrant 主机端口被忽略

转载 作者:行者123 更新时间:2023-12-04 21:10:34 26 4
gpt4 key购买 nike

在我的 Vagrantfile 中,我定义了我的开发机器,其专用网络 IP 为 192.168.33.10,转发端口为“guest=80,host=8888”,但是当运行我的 vagrant 环境时,我尝试运行 curl -i 192.168.33.10:8888 我收到一条错误消息“连接到 192.168.33.10:8888 失败;连接被拒绝',但是当我尝试连接到 192.168.33.10:80 时,一切正常。

我的 Vagrant 文件是:

Vagrant::configure("2") do |config|
config.vm.box = "precise32"

config.vm.define :web do |www|
www.vm.hostname = "apache"
www.ssh.max_tries = 10
www.vm.network :forwarded_port, guest: 80, host: 8888 # Apache port
www.vm.network :private_network, ip: "192.168.33.10"

www.vm.synced_folder "www", "/var/www", :extra => 'dmode=777,fmode=777'
end
end

为什么会发生这种情况? vagrant 是否忽略了转发的端口?

最佳答案

默认情况下,Vagrant Boxes 使用 NAT 模式,这意味着客人在 router 后面。 ( 主机和 guest 之间的 VirtualBox 网络引擎 )透明地映射进出虚拟机的流量。客人是不可见的,并且无法从主机访问。

这就是我们需要端口转发的原因。 否则,在 guest 上运行的服务将无法访问。

在您的情况下,您正在使用 Private Network , guest 将被分配一个只有主机可以访问的私有(private)IP地址,即192.168.33.10 .

访问客户机上托管的 Web 的正确方法是 => http://192.168.33.10从主机。

您在 Vagrantfile 中有端口转发部分

www.vm.network :forwarded_port, guest: 80, host: 8888  # Apache port

它将访客端口 80 转发到主机的 8888。 因为你没有使用 NAT 模式 我很确定它会被忽略。试试 curl -Is http://localhost:8888 .

NOTE: even if it still work somehow, you should be accessing web by => http://localhost:8888/ from your host.

关于web - Vagrant 主机端口被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com