CentOSに開いているポートを正しく一覧表示させる方法は?

CentOSに開いているポートを正しく一覧表示させる方法は?

私はDockerコンテナセットをホストするCentOS 7オペレーティングシステムを使用しています。

Webブラウザを使用すると、ポート80からサービスにアクセスして応答を受け取ることができます。いくつかのローカル知識は、応答がDockerコンテナから出てくることを理解するのに役立ちます。

しかし、大きな問題があります。オペレーティングシステムでポート80が開いていることを示す方法が見つからないようです。私が試したことは次のとおりです(すべてのrootユーザーを含む)。

  • netstat -tulnp | grep 80リスト何もないポート80で受信
  • ss -nutlp | grep 80ポート80でリッスンしていないエントリのリスト
  • lsof -i -P | grep 80また、ポート 80 でリッスンしないエントリも一覧表示されます。
  • wget 127.0.0.1index.htmlを正常に取得しました。

質問するルーストアバウトダイレクトパスはdocker ps実際に私が探している答えではありません。なぜなら、私たちはオペレーティングシステムに尋ねて、ポート80への要求を処理するプロセスを確認する必要があるからです。docker ps返されるのでこれも役に立ちません。一部PORTS 列に次の項目があるコンテナー:

PORTS
80/tcp
8080/tcp
80/tcp

また行きたくないドッカーオペレーティングシステムを調査し、ポート80の処理を担当するプロセスを識別する方法が必要なので、答えを探しています。

私の唯一の推測はドッカーこれらのネットワーク要求をブロックするには、一種の低レベルドライバをインストールします。

この情報とコマンドラインコマンドを配布するためにCentOSを入手する方法についての提案があれば、大いに感謝します!

答え1

Dockerホストはポート80でリッスンしていますか?ポート80から任意のポートにリダイレクトできます。はい内蔵ファイアウォール監視を使用してください。

IPTABLESを実行している場合は、次のコマンドを使用して確認できます。

iptables -L -t nat

これにより、次のようなリダイレクトが何であるかを示すDOCKERというチェーンが表示されます。

Chain DOCKER (2 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            
RETURN     all  --  anywhere             anywhere            
DNAT       tcp  --  anywhere             anywhere             tcp dpt:http-alt to:172.17.0.3:80
DNAT       tcp  --  anywhere             anywhere             tcp dpt:4433 to:172.17.0.3:443
DNAT       tcp  --  anywhere             anywhere             tcp dpt:1688 to:172.17.0.4:1688

関連情報