流浪汉港口转发不适用于小牛队

Ric*_*ard 5 macos vagrant

我正在使用一个流浪的Geodjango盒子,端口转发对我不起作用.

在盒子上,我跑了:

python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

但http://localhost:8000与http://localhost:4567这两个发现在主机上什么都没有.

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

<h2>Congratulations on your first Django-powered page.</h2>
Run Code Online (Sandbox Code Playgroud)

这表明Django运行正常.但是在主机上,尝试curl -v 'http://localhost:8000/'提供以下输出:

curl: (7) Failed connect to localhost:8000; Connection refused
Run Code Online (Sandbox Code Playgroud)

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

config.vm.forward_port 8000, 4567
Run Code Online (Sandbox Code Playgroud)

禁用Mac的防火墙没有帮助,停止Apache没有任何区别.我试过lsof -i :8000在主机上运行并且没有输出,所以我认为什么都没有使用端口.

谁能提出任何建议?

小智 8

我在优胜美地遇到了同样的问题,没有一个端口正在转发.禁用来宾计算机上的防火墙过滤器有助于:

sudo service iptables stop
Run Code Online (Sandbox Code Playgroud)


Ter*_*ang 4

很高兴看到你自己解决了这个问题。

只是想补充我的 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
Run Code Online (Sandbox Code Playgroud)