ポート80が開いていません。curlを実行すると404が返されます。

ポート80が開いていません。curlを実行すると404が返されます。

現在、奇妙な問題が発生しています。ポート 80 では何も実行されていません。

まだ curl は 404 ページが見つかりませんと表示します。ポート 80 に telnet でき、ポート 80 (ホスト) を公開するコンテナーを起動することもできます。しかし、コンテナーにリクエストが届きません。

何が起こっているのか分かりますか? これをデバッグするにはどうすればいいですか?

$ netstat -tulpn | grep :80
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::8000                 :::*                    LISTEN      -                   
$ curl localhost
404 page not found

答え1

内部NATリダイレクトを疑うマシューのコメントに加えて

  • iptables -vnL -t natまたはnft list ruleset ip

おそらく、ポート 80 を直接検査できるでしょう。これを行う方法のいくつかを以下に示します。

  • ss -4tlnp -o state LISTENING '( sport = :80 )'
  • lsof -i:80
  • 詳細なtcpdumpを実行する
  • nmapで詳細なポートスキャンを実行する
  • または、curlでテストするときにさらに明示的に、つまりcurl -v http://localhost:80

関連情報