我正在使用vagrant Geodjango box并且端口转发对我不起作用。
在盒子上,我跑了:
python manage.py runserver 0.0.0.0:8000
但是http://localhost:8000
和http://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
并且没有输出,所以我认为没有使用该端口。
有人可以提出任何建议吗?
答案 0 :(得分:8)
我在优胜美地遇到了同样的问题,没有一个端口正在转发。在来宾计算机上禁用防火墙过滤器有助于:
sudo service iptables stop
答案 1 :(得分:4)
很高兴看到你自己想出来。
只想添加我的2美分,在V2 Vagrantfile中,端口转发代码块如下所示,尝试使用新的,以避免端口冲突(回到v1我总是困惑哪个是哪个)。< / p>
config.vm.forward_port 8000, 4567
正在将访客端口8000转发给主机4567,而不是相反。
在V2格式中,它看起来如下,从我的意见中可以更清楚
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8080
end