Переадресация портов бродяги не работает [закрыто]
я столкнулся с небольшой проблемой в конце руководство по началу работы для 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 -v
Curl localhost: [port#] или нажмите его в вашем браузере со стороны vagrant
дополнительная информация о CentOS iptable configs находится здесь:
http://wiki.centos.org/HowTos/Network/IPTables
удачи.