これが私の設定です。Oracle Linux 7 がインストールされた VM を実行しています。 で Apache を起動しましたが、問題なく起動しました。との両方にファイルservice httpd start
を作成しました。 または を使用してホスト マシンから VM にアクセスできますが、Web ブラウザーを開いて IP アドレスに移動しても、サーバーが応答しません。index.html
/var/www/html
/var/www
ping
ssh
確認したnetstat -plent
ところ、ポート 80 がリッスンしていることがわかりました。
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
私は見たでいくつかの 回答iptables が問題である可能性を示唆していますが、これらの解決策はどれも役に立ちませんでした。他に何が問題の原因となっているのでしょうか?
答え1
答え2
netstat の出力によると、IPv6 のみをリッスンしているようです。
IPv6 のみを使用して Web サイトにアクセスするか、Apache で別のリスナー ディレクティブを作成して 0.0.0.0:80 でリッスンする必要があります。httpd.conf で次の操作を行います。
Listen 0.0.0.0:80
もちろん、トラフィックを提供する IP アドレスのみをリッスンすることもできます。
ただし、Linux でデュアルスタック ソケットがサポートされている場合は、このアドバイスは正しくありません。デュアルスタック リスニングがオンになっていることを確認するだけでよい場合があります。procfs を使用して、次のファイルを確認します。
/proc/sys/net/ipv6/bindv6only
0 でない場合は、構成で 0 に変更するか、明示的に IPv4 をリッスンする必要があります。
また、ファイアウォールのルールを確認してください。IPv4 または IPv6 のトラフィックを拒否している場合は、それが原因である可能性があります。こちらを確認してください:
iptables -t filter -nvL INPUT
ip6tables -t filter -nvL INPUT
デフォルトのポリシーが ACCEPT ではなく、HTTP トラフィックを許可するルールがない場合、または HTTP トラフィックをブロックするルールがある場合は、それが説明になります。