110

のスタートガイドvagrantの最後に小さな問題が発生しています。Apache2を実行しているCentOSベースボックスに取り組んでいます(Puppetを介したプロビジョニング)。次の行を使用して、Webリクエストのポートフォワーディングを設定しましたVagrantfile

 config.vm.forward_port "web", 80, 4567

しかし、そのポートにリクエストを送信すると、失敗します。Safariによって報告されたエラーは次のとおりです。'サーバーが予期せずドロップしたため、Safariはページ「<ahref = "http:// localhost:4567 /" rel = "noreferrer"> http:// localhost:4567/」を開くことができません。繋がり。'

vagrant reloadスクロールで「[default]-web:80 => 4567(adapter 1)」が表示されたので、どこからトラブルシューティングを開始すればよいですか?ありがとう。

4

5 に答える 5

273

多くの場合、これは VM 内のサーバーが原因であることに注意してください127.0.0.1。これは、ループバックである にバインドされているためです。0.0.0.0すべてのインターフェイスがサーバーにアクセスできるように、サーバーがバインドされていることを確認する必要があります。

Django の開発サーバーや一部の Ruby サーバーなどの一部の組み込みアプリ サーバーはデフォルトで に設定さ127.0.0.1れているため、これには注意が必要です。

それ以外は、スティーブが言ったことは真実です。VM内から動作することを確認し、他の単純なサーバーをいくつか試して、構成の問題かどうかを調べてください.

于 2011-05-14T05:11:41.557 に答える
81

単なるコメントではなく、これを実際の回答にします。

まずcurl 'http://localhost:80'、VM 内から試してください。それでもうまくいかない場合、それは間違いなくポート転送ではありません。

次へ:curl -v 'http://localhost:4567/'ホスト マシンから試してください。Curl は、Safari よりも適切なエラー メッセージを表示する場合があります。

ポート 80 へのアクセスを制限するファイアウォールが設定されていないことを確認します。デフォルトの Vagrant VM (Ubuntu) にはファイアウォールが設定されていませんが、別のものを使用しているとのことでしたので、その価値があるかもしれません。チェックする。

そうでない場合は、ポート 80 にリストされている Apache 以外のものを作成してみてください。Python には、使用できる単純な HTTP サーバーが同梱されていindex.htmlますsudo python -m SimpleHTTPServer 80。それが機能する場合、それはおそらく Apache 構成の問題です。その場合に役立つApacheの十分な経験がありません(nginxを使用しています)。

于 2011-05-13T13:07:03.077 に答える
33

NGINXを使用したCentOS 6.3でも同じ問題が発生し、vagrantボックスのiptablesに答えがあることがわかりました。

vagrant ボックスの 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

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

localhost:[port#] をカールするか、vagrant の外部からブラウザでヒットします。

CentOS iptable 構成の詳細については、次を参照してください。

http://wiki.centos.org/HowTos/Network/IPTables

幸運を。

于 2012-12-19T01:16:12.407 に答える
27

私にとってより良い解決策は、ファイアウォールを無効にすることです

service iptables stop
chkconfig iptables off
于 2012-12-20T18:38:16.900 に答える
0

ミッチェルのような別のメモも追加したいと思います。私の場合、80から6789に転送します

$ curl -v http://localhost:6789

そして私は得た

<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>

次に、代わりにIPアドレスを使用しましたが、正しいhtmlメッセージが表示されました。

于 2011-10-19T07:20:35.850 に答える