特定のポートに対するHTTP要求/応答を表示するための簡単なコマンドラインユーティリティ

特定のポートに対するHTTP要求/応答を表示するための簡単なコマンドラインユーティリティ

私はリッスンする単純なAPIを持っておりhttp://localhost:5000、Nginxはリバースプロキシでリッスンしていますhttps://example.com

私のAPIにヘッダーを送信するようにNginxを設定しました。

    location /
    {
        proxy_pass http://localhost:5000;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;

    }

http://しかし、私のJWTプロバイダライブラリは私にリダイレクトしているので、ここでは何か動作しませんhttps://。問題がNginxと私のAPIの間にあるようです。

APIポートでHTTPトラフィックを監視または記録する簡単なコマンドラインユーティリティが必要です。

私は次の質問を見ましたが、どちらも私の要件に合わないようです。 (そしてそれらもかなり古いです):

https://superuser.com/questions/604998/monitor-tcp-traffic-on-特異的-port
試してみましたが、tcpdumpWeb開発者として出力を読み取ることはできません。HTTPie出力のようなものを探しています。

https://superuser.com/questions/23180/whats-the-easiest-way-to-sniff-tcp-traffic-data-on-linux
実はタイトルが欲しかったです。この質問はデータ自体についてです。

https://askubuntu.com/questions/257263/how-to-display-network-traffic-in-the-terminal
これらすべてのアプリケーションは統計資料インターネットに関連しています。要求/応答ではありません。

それでは、HTTPリクエスト/レスポンスヘッダと本文を出力し、それをキャプチャしてターミナルまたはファイルに印刷するための簡単なユーティリティはありますか?

私のサーバーはDebian 11を実行しています。

答え1

HTTPieやFiddlerとは異なり、プロキシとAPIサーバー間のパケットキャプチャプログラムは、どのパケットがデバッグセッションの一部であるか、どのパケットが無関係な要求であるかを直接知ることはできません。

tcpdumpキャプチャされたダンプをキャプチャして分析するには、Wiresharkまたは同様のツールを使用することをお勧めします。次のものが必要ですtcpdump -i any -Knpv -w /some/where/output.cap tcp port 5000

Wiresharkでは、ダンプファイルを開いてパケットを選択し、右クリックすると表示されるコンテキストメニューから「Follow -> TCP Stream」を選択できます。これにより、クライアントとサーバー間の会話(クライアント要求とすべてのヘッダー、サーバーの応答とヘッダー)が提供されます。

関連情報