Переадресация портов бродяги не работает [закрыто]
я столкнулся с небольшой проблемой в конце руководство по началу работы для vagrant. Я работаю на CentOS basebox, который имеет apache2 работает (подготовка через Puppet). Я настроил переадресацию портов для веб-запросов, используя следующую строку Vagrantfile:
config.vm.forward_port "web", 80, 4567
но когда я делаю запросы к этому порту, они терпят неудачу. Ошибка, о которой сообщает Safari,- "Safari не может открыть страницу"http://localhost:4567/" потому, что сервер неожиданно отключил связь.-
Я vagrant reload и увидел "[по умолчанию] -- web: 80 => 4567 (адаптер 1)" в прокрутке, так где я должен начать устранять эту проблему? Спасибо.
5 ответов:
Я сделаю это реальный ответ, а не просто комментарии.
первое: попробуйте
curl 'http://localhost:80'внутри виртуальной машины. Если это не работает, то это определенно не переадресация портов.следующий: попробовать
curl -v 'http://localhost:4567/'С вашего хост-компьютера. Curl может дать вам лучшее сообщение об ошибке, чем Safari.Я бы проверил, что нет брандмауэров, настроенных на ограничение доступа к порту 80. По умолчанию Vagrant VM (Ubuntu) не поставляется с установленным брандмауэром, но вы сказали вы используете что-то еще, так что, возможно, стоит проверить.
если это не так, попробуйте сделать что-то другое, чем Apache, указанный на порту 80. Python поставляется с простым HTTP-сервером, который вы можете использовать-перейдите в папку с
index.htmlи работатьsudo python -m SimpleHTTPServer 80, а затем попробуйте ударить, что с завитком из обеих коробок. Если это работает, то это, вероятно, проблема конфигурации Apache. У меня нет достаточного опыта работы с Apache, чтобы помочь, если это так (я использовать nginx).
Я хотел добавить дополнительную заметку, что часто это вызвано сервером в виртуальной машине, потому что он привязывается к
127.0.0.1, который является петлевым. Вы хотите убедиться, что сервер привязан к0.0.0.0Так что все интерфейсы могут получить доступ к нему.некоторые встроенные серверы приложений, такие как серверы разработки Django и некоторые серверы Ruby по умолчанию
127.0.0.1по умолчанию, так это то, чтобы следить за.кроме этого, то, что сказал Стив, верно: убедитесь, что это работает изнутри виртуальной машины и попробуйте некоторые другие простые серверы, чтобы попытаться выяснить, является ли это проблемой конфигурации.
у меня была такая же проблема на CentOS 6.3 w/ NGINX и я нашел ответ в iptables на коробке vagrant.
из bash on the vagrant box выполните следующие действия:
первый список текущих правил iptable
iptables -L -vзатем сбросить текущие правила:
iptables -Fразрешить SSH-соединения на tcp-порту 22
iptables -A INPUT -p tcp --dport 22 -j ACCEPTустановите политики по умолчанию для входных, прямых и выходных цепей
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPTнастроить доступ к localhost
iptables -A INPUT -i lo -j ACCEPTпринимать пакеты, принадлежащие установленным и связанным соединениям
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTсохранить настройки
/sbin/service iptables saveсписок измененных правил
iptables -L -vCurl localhost: [port#] или нажмите его в вашем браузере со стороны vagrant
дополнительная информация о CentOS iptable configs находится здесь:
http://wiki.centos.org/HowTos/Network/IPTables
удачи.