vagrant
の入門ガイド の最後に小さな問題が発生しています。 Apache2が実行されているCentOSベースボックスで作業しています(Puppetを介したプロビジョニング)。 Vagrantfile
の次の行を使用して、Web要求のポート転送を設定しました。
config.vm.forward_port "web", 80, 4567
しかし、そのポートにリクエストを送信すると失敗します。 Safariが報告するエラーは、「サーバーが予期せず接続を切断したため、Safariがページ「 http:// localhost:4567 / 」を開くことができません」です。
vagrant reload
を実行し、スクロールで[[default]-web:80 => 4567(adapter 1)]を見たので、どこでトラブルシューティングを開始すればよいですか?ありがとう。
多くの場合、これはVM内のサーバーがループバックである127.0.0.1
にバインドするため、これが原因であるという注意を追加したかったのです。すべてのインターフェイスがアクセスできるように、サーバーが0.0.0.0
にバインドされていることを確認する必要があります。
Djangoの開発サーバーなどの一部の組み込みアプリサーバーと一部のRubyサーバーは、デフォルトで127.0.0.1
にデフォルト設定されるため、注意が必要です。
それ以外に、スティーブが言ったことは真実です:VM内から動作することを確認し、他のいくつかの簡単なサーバーを試して、構成の問題かどうかを試してみてください。
CentOS 6.3 w/NGINXでも同じ問題が発生し、その答えはvagrantボックスのiptablesにあることがわかりました。
浮浪者ボックスのbashから、次の手順を実行します。
最初に現在のiptableルールをリストする
iptables -L -v
次に、現在のルールをフラッシュします。
iptables -F
TCPポート22でSSH接続を許可する
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
INPUT、FORWARD、およびOUTPUTチェーンのデフォルトポリシーを設定する
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
ローカルホストのアクセスを設定する
iptables -A INPUT -i lo -j ACCEPT
確立された接続および関連する接続に属するパケットを受け入れます
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
設定を保存する
/sbin/service iptables save
変更されたルールをリストする
iptables -L -v
Localhost:[port#]をカールするか、外部のVagrantからブラウザでヒットします
CentOSのiptable構成の詳細については、次を参照してください。
http://wiki.centos.org/HowTos/Network/IPTables
幸運を。
私にとってより良い解決策は、ファイアウォールを無効にすることです
service iptables stop
chkconfig iptables off
ミッチェルのような別のメモも追加したいと思います。私の場合、80から6789に転送します
$ curl -v http://localhost:6789
そして私は得た
<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>
次に、代わりにIPアドレスを使用し、正しいHTMLメッセージを取得しました。