Vagrantのポート転送が機能しない[閉じた]
-
12-11-2019 - |
質問
vagrant
の末尾に小さな問題に遭遇しています。。私はApache2が実行されているCentos Basebox(人形によるプロビジョニング)に取り組んでいます。Vagrantfile
の次の行を使用してWebリクエストのポート転送を設定しました:
config.vm.forward_port "web", 80, 4567
.
しかし、そのポートに要求をすると失敗します。Safariによって報告されたエラーは 'Safariはページを開くことができません " "サーバーが突然接続を削除しました。 '
vagrant reload
をDidSain "[デフォルト] - Web:80=> 4567(アダプタ1)" Scrollでは、どこでトラブルシューティングを始めるべきですか?ありがとう。
解決
私はもっとコメントの代わりに実際の答えを作ります。
最初のもの:VM内からcurl 'http://localhost:80'
を試してください。それがうまくいかない場合は、間違いなくポート転送ではありません。
次のように:ホストマシンからcurl -v 'http://localhost:4567/'
を試してください。CURLはSafariよりも優れたエラーメッセージを与えることがあります。
ポート80へのアクセス制限を制限するファイアウォールが設定されていないことを確認します。デフォルトのvagrant VM(Ubuntu)はファイアウォールを設定していませんが、他のものを使用しているように、チェックする価値がある。
それがそれであれば、Apacheの他のものをポート80にリストされてみてください.Pythonの船でPythonの船を使って使用することができます - index.html
を使用してフォルダに移動してsudo python -m SimpleHTTPServer 80
を実行してから、両方のボックスからCURLで打つようにしてください。。そのうちのうちに、それはおそらくApache構成の問題です。それが事実であるならば、私はApacheで十分な経験を持っていません(私はNginxを使います)。
他のヒント
これは、これがループバックである127.0.0.1
にバインドするため、これはVM内のサーバーによって引き起こされることが多いという追加のメモを追加したいと考えていました。すべてのインターフェイスがアクセスできるように、サーバーが0.0.0.0
にバインドされていることを確認します。
Djangoの開発サーバやいくつかのRubyサーバなどの組み込みアプリサーバは、デフォルトでデフォルトではデフォルトではデフォルトでデフォルトでは、注目に値するものです。
それ以外のSteveは、Steveがtrueを持っていると言っています:それがVM内で機能し、他の単純なサーバーを試して構成の問題である場合に把握してください。
私はCentOS 6.3 W / Nginxで同じ問題を抱えており、vagrantボックス上のiptablesにある回答を見つけました。
vagrantボックスのbashから、次の手順に従います。
最初のリスト現在のiptable Rules
iptables -L -v
.
現在の規則をフラッシュする:
iptables -F
.
TCPポート22のSSH接続を許可する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:[ポート#]または外部のvagrant からブラウザにそれを打つ
ここで見つかったCentOS iptable configの詳細:
http://wiki.centos.org/howtos/network/iptables
頑張ってください。
私のためのより良い解決策はファイアウォールを無効にしています
service iptables stop
chkconfig iptables off
. Mitchellのような別のメモを追加したいです。私の場合私はそれを80 から6789に転送する
$ curl -v http://localhost:6789
.
と私は
<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>
.
その後、IPアドレスを使用しましたが、正しいHTMLメッセージが表示されます。