2013-11-26 2 views
4

Я использую vagrant Geodjango box, и переадресация портов для меня не работает.Переадресация брандмауэра не работает на Mavericks

На коробке, я побежал:

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 на хост-машине, и нет выхода, поэтому я считаю, что ничего не использует порт.

Может ли кто-нибудь предложить что-нибудь?

+1

Ах, понял это - там было предупреждение о переадресации портов, что я не видел, в самом начале 'бродячего процесса reload'. Vagrant переназначил порты, поэтому сайт фактически работал на порту 2201 и работал 'http: // localhost: 2201 /'. – Richard

ответ

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 
8

Я имел такой же вопрос на Yosemite и ни один из портов не было пересылки. Отключение брандмауэра фильтра на гостевой машине помогло:

sudo service iptables stop 
+1

Я также могу подтвердить, что отключить брандмауэр на моем гостю исправил ту же проблему для меня на Yosemite – DaddyMoe

+0

. Моя проблема была также в брандмауэре, однако я не использовал «сервис sudo». Документация здесь очень полезна https://wiki.centos.org/HowTos/Network/IPTables - обратите пристальное внимание на # iptables -P INPUT ACCEPT и # iptables -F. Это стоит прочитать, даже если вы можете использовать «sudo service iptables stop», потому что вы не хотите отключать брандмауэры, не понимая последствий. –

Смежные вопросы