【问题标题】:Vagrant port forwarding not working on Mavericks流浪端口转发不适用于小牛队
【发布时间】:2015-04-08 06:36:46
【问题描述】:

我使用的是vagrant Geodjango box,但端口转发对我不起作用。

在盒子上,我跑了:

python manage.py runserver 0.0.0.0:8000

但是http://localhost:8000http://localhost:4567 在主机上都找不到任何东西。

在 Vagrant 框中,curl -v 'http://localhost:8000/' 给出通常的:

<h2>Congratulations on your first Django-powered page.</h2>

这表明 Django 运行正常。但在主机上,尝试curl -v 'http://localhost:8000/' 会得到以下输出:

curl: (7) Failed connect to localhost:8000; Connection refused

我的 Vagrantfile 设置了以下端口转发:

config.vm.forward_port 8000, 4567

禁用 Mac 的防火墙无济于事,停止 Apache 也无济于事。我试过在主机上运行lsof -i :8000 并且没有输出,所以我认为没有任何东西在使用该端口。

谁能给点建议?

【问题讨论】:

  • 啊,想通了——在vagrant reload 进程的开始,有一个关于端口转发的警告,我没有看到。 Vagrant 重新分配了端口,因此该站点实际上在端口 2201 上运行,http://localhost:2201/ 工作。

标签: macos vagrant


【解决方案1】:

我在 Yosemite 上遇到了同样的问题,并且没有一个端口在转发。禁用来宾计算机上的防火墙过滤器有帮助:

sudo service iptables stop

【讨论】:

  • 我还可以确认,在我的客人上禁用防火墙解决了我在优胜美地上的相同问题
  • 我的问题也是防火墙,但我没有使用“sudo 服务”。这里的文档非常有用wiki.centos.org/HowTos/Network/IPTables - 密切关注# iptables -P INPUT ACCEPT 和# iptables -F。即使您可以使用“sudo service iptables stop”也值得一读,因为您不想在不了解后果的情况下禁用防火墙。
【解决方案2】:

很高兴看到你自己想通了。

只是想加我的2美分,在V2 Vagrantfile中,端口转发代码块如下所示,尝试使用新的以避免端口冲突(回到v1我总是混淆哪个是哪个)。

config.vm.forward_port 8000, 4567 将访客端口 8000 转发到主机 4567,而不是相反。

在 V2 格式中,如下所示,我认为这更清楚

Vagrant.configure("2") do |config|
  config.vm.network "forwarded_port", guest: 80, host: 8080
end

【讨论】:

    猜你喜欢
    • 2012-02-20
    • 2016-06-30
    • 2017-05-31
    • 2012-11-11
    • 2016-06-22
    • 2014-10-03
    • 2014-05-25
    • 2017-12-19
    • 2020-10-23
    相关资源
    最近更新 更多