「Burst Liver Tidying」Nanny シリーズ チュートリアル - Charles と遊ぶ パケット グラビング アーティファクト チュートリアル (15) - Charles でリバース プロキシを構成する方法

1 はじめに

アプリ開発のプロセスでは、パケット キャプチャが非常に一般的な要件ですが、ネットワーク上にプロキシが設定されている場合、一部のアプリ リクエストはキャプチャされません。ここでパケットをキャプチャする必要がある場合は、リバース プロキシを構築する必要があります。

2. エージェントとは何ですか?

エージェントとは何かを理解するための図を次に示します。

インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。同時に、オンラインの数はユーザーが 1,000 人に達し、メモを収集して使用することができます。各種マスターの技術交流: 798478386    

【更新】B局が教えるPythonインターフェースの自動テストの最も詳しい実践チュートリアル集(実戦最新版)_哔哩哔哩_bilibili 【更新】Pythonの自動テストの最も詳細な実践チュートリアル集B局が教えるインターフェース(実戦編) 最新版)には以下の動画が合計200本あります: 1. 【インターフェース自動化】ソフトウェアテストの市場状況とテスターの能力基準。, 2. [インターフェイスの自動化] Requests ライブラリとその基礎となるメソッド呼び出しロジックに精通した、3. [インターフェイスの自動化] インターフェイスの自動化戦闘と正規表現と JsonPath エクストラクターの適用など。さらにエキサイティングなビデオについては、注目してください。 UPアカウント。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 

プロキシはフォワードプロキシとリバースプロキシに分かれます。

3. フォワードプロキシとは何ですか?

まずは写真を見てみましょう〜

【栗をもうひとつ】

クラスメートは、検索エンジンのプログラミングが好きで、Baidu の検索エンジンで学習教材を見つけたいと考えていますが、Web サイトによっては直接アクセスするのは安全ではなく、IP が公開されてしまう可能性があります。彼が欲しい情報を検索するために、そしてあなたのIPをウェブサイトに公開しないでしょうか?

このとき、クラスメートに、「たまたまプロキシ サーバーを持っている。このプロキシ サーバーは、nginx 経由で http および https リクエストを転送するように設定されている。あなたは Windows のゲートウェイでこれを設定するだけでよい」と話しました。ローカル コンピュータ。実際の IP を明らかにすることなく、プロキシ サーバー経由で Baidu にアクセスし、関連する学習教材を検索できます~

4. リバースプロキシとは何ですか?

まずは写真を見て理解してください〜

フォワード プロキシに対応して、フォワード プロキシはクライアントをプロキシし、リバース プロキシはサーバーをプロキシします。

リバースプロキシ(リバースプロキシ):インターネット上で接続要求を受け付け、その要求を内部ネットワーク上のサーバーに転送し、サーバーから得られた結果をインターネット上の接続を要求しているクライアントに返すプロキシサーバーを指します。このとき、プロキシ サーバーは外部的にはリバース プロキシ サーバーとして機能します。

家を借りる際には、仲介業者を通さなければならない物件のほか、家主を通じて直接借りられる物件もあります。ユーザーが直接家主を見つけて家を借りる状況とは、代理店を通さずに直接国内のウェブサイトにアクセスする状況です。

もう 1 つの状況は、私たちは家主に連絡していると思っていますが、場合によっては家主本人ではなく、彼の親戚、友人、さらには 2 人目の家主である可能性もあります。しかし、私たちは本当の地主が私たちと連絡を取っていないことを知りません。本物の住宅所有者が家を借りるのを手伝うこの種の 2 番目の家主は、実際にはリバース プロキシ サーバーです。このプロセスはリバース プロキシです。

一般的なシナリオでは、Web 開発で使用する負荷分散サーバー (2 番目の家主) が、クライアント (テナント) が負荷分散サーバー (2 番目の家主) にリクエストを送信し、負荷分散サーバー (2 番目の家主) がリクエストを転送します。 request 実サーバー(ランドロード)に転送して実行し、実行結果をクライアント(テナント)に返します。
リバース プロキシは、実際には、「ターゲット サーバー」が「クライアント」と対話するためのプロキシとして機能する「プロキシ サーバー」です。

リバース プロキシ サーバー経由でターゲット サーバーにアクセスする場合、クライアントは実際のターゲット サーバーが誰であるか、あるいはそれがプロキシであることさえ知りません。

5. フォワードプロキシとリバースプロキシの違い

フォワード プロキシ サーバーとリバース プロキシ サーバーはクライアントと実サーバーの間に配置されますが、クライアントのリクエストをサーバーに転送し、サーバーの応答をクライアントに転送することを行いますが、両者の間にはまだいくつかの違いがあります。二つ。

1. フォワード プロキシは実際にはクライアントのプロキシであり、クライアントがアクセスできないサーバー リソースにアクセスできるようにします。リバース プロキシはサーバーのプロキシであり、サーバーによる負荷分散、セキュリティ保護などを支援します。

2. フォワード プロキシは通常、クライアント自身のマシンにプロキシ ソフトウェアをインストールするなど、クライアントによって想定されます。リバース プロキシは通常、独自のマシン クラスターにリバース プロキシ サーバーを展開するなど、サーバーによって想定されます。

3. フォワード プロキシでは、サーバーは本当のクライアントが誰であるかを知らず、自分自身を訪問する人が本当のクライアントであると考えます。リバース プロキシでは、クライアントは実際のサーバーが誰であるかを知らず、アクセスしているのが実際のサーバーであると考えます。

4. フォワードプロキシとリバースプロキシは役割や目的が異なります。フォワードプロキシは主にアクセス制限の問題を解決するために使用されます。リバース プロキシは、負荷分散、セキュリティ保護、その他の機能を提供します。どちらもアクセス速度を向上させることができます。

6. 準備が必要な作業

  • 自分のコンピュータ上で使用可能な Charles を構築する
  • パケットをキャプチャする必要があるリモート サービスのポート番号とホスト アドレス
  • 自分のコンピュータ上にローカル DNS 解決サービスを構築する

7. 具体的な手順(Windowsでの操作、Macでも同様)

1. 携帯電話が Charles に接続できることを確認し、通常要求されるデータ パケットをコンピュータ上で確認できることを確認します (特定のパケット キャプチャについては、ブラザー ホンの以前のチュートリアルを参照してください)。

2. Charles を開き、[プロキシ] --> [リバース プロキシ...] をチェックし、リバース プロキシ設定インターフェイスに入ります。以下に示すように:

 

3. [リバース プロキシ設定] (リバース プロキシ設定) ページに入り、[リバース プロキシを有効にする] チェックボックスをオンにします。以下に示すように: 

4.【追加】を追加します。以下に示すように:

 

[リバース プロキシの編集] ビューのオプションの意味は次のとおりです。

ローカル ポート: ローカル
ポート リバース プロキシを作成するローカル ホスト上のポート。このフィールドには、使用可能なポートが自動入力される場合があります。別のアプリケーションがそのポートを使用している場合、リバース プロキシの開始時に警告メッセージが表示されます。

リモート ホスト: リモート ホスト
リバース プロキシの宛先となるリモート ホストのホスト名または IP アドレス

リモート ポート: リモート ポート デフォルト
のリモート ポートは 80 で、これは HTTP のデフォルト ポートです。

リダイレクトの書き換え: リダイレクトの書き換え リダイレクト
されたリモート サーバーの応答は、リバース プロキシの送信元アドレスに一致するように書き換えられます。デフォルトはオンです。 リダイレクトされたリモート サーバーの応答は、リダイレクトされた場合に
同じ Web サイト内にある場合でも、完全修飾 URL になります。
リモート サーバー アドレスに書き換える場合は、リバース プロキシのローカル アドレスに書き換える必要があります。そうしないと、クライアントはリモート ホストへのリダイレクト URL を使用するため、リバース プロキシ経由で接続できなくなります。

ヘッダー フィールドにホストを保持する: ホスト ヘッダーを保持する
ホスト HTTP ヘッダーは、リバース プロキシ リモート ホストに一致するように通常ホスト ヘッダーを書き換えるのではなく、受信リクエストから変更されずに渡されます。デフォルトはオフです。特定の要件がある場合にのみ必要です。 ホストを予約します
。ヘッダー。通常の使用には必要ありません。

特定のアドレスでリッスン: 特定のアドレスでリッスンします。
リバース プロキシをリッスンするローカル アドレスを指定します。このオプションを有効にして、ここに IP アドレスを入力できます。

8.チャールズリバースプロキシ実戦

Charles リバース プロキシは、Smartbi サーバーと XMLA サーバー間の通信、Smartbi SDK とサーバー間の通信などの追跡など、IE 以外の HTTP リクエストに対するポート転送機能を提供します。

Apache サーバーはコンピューター A にインストールされており、IP アドレスは 10.11.53.180 で、サービスは有効になっており、ポート番号は 80 (デフォルト) です。次に、Hongge は HTML ページをデプロイし、ブラウザーでサービスにアクセスします。以下に示すように:

 

モバイル端末がサーバーAが展開するHTMLページにアクセスするとエラーが発生しますが、モバイル端末のHTTPリクエストを記録する必要があります。現時点では、この問題を解決するには Charles のリバース プロキシが必要です。具体的な操作手順は以下の通りです。

1. IP アドレスが 10.11.53.193 である別のコンピュータ (コンピュータ B など) を見つけます。ここで、Hongge が示しているのは、次の図に示すように、Hongge のローカル コンピュータです。

 

2. Charles をコンピュータ B にインストールして起動しますが、Hong 兄弟がすでにインストールしているため、デモはありません。

3. 以下の図に示すように、charles で [プロキシ] - [リバース プロキシ] を選択して、リバース プロキシ設定インターフェイスに入ります。

4. リバース プロキシ設定インターフェイスは次のとおりです。次の図に示すように、[追加] ボタンをクリックして新しいリバース プロキシ設定を作成します。 

 

5. リバースプロキシのポート番号、IPアドレスなどを設定します。

このうち、ローカル ポートはコンピュータ B の空きポートを指します (この例では 8080 が使用されています)。
リモート ホストは HTML ページ サービスの IP、つまりコンピュータ A の IP: 10.11.55.182 を指します。
リモート ポートは 10.11.55.182 を指します。 HTML ページ サービスのポート番号に追加します。この例では、HTML ページにアクセスするためのポート番号は 80 (Apache のデフォルト ポート) です。次の図に示すように、[OK] をクリックして
リバース プロキシ設定を保存します。

6. 前のステップで [OK] をクリックすると、次の図に示すように、リバース プロキシ リスト ウィンドウが表示されます。前のステップで設定したリバース プロキシを確認し、[OK] をクリックして有効にします。

 

7. 任意のコンピュータまたはモバイル端末で、リバース プロキシに設定された http://コンピュータ B の IP:ローカル ポート port/inde.html を介してHTML ページ サービスにアクセスできます。今回の例では、下図のようにブラウザやモバイル端末のサーバー設定でhttp://10.11.53.193:8080/index.htmlと入力してアクセスします。

注: Access では、localhost ではなく IP を書き込む必要があります。

 

8. リバース プロキシ アクセスはチャールズで監視され、初めてアクセスを許可するかどうかがポップアップ表示されます。アクセスを許可するには、[許可] ボタンを選択します。次の図に示すように、プロキシが設定されるまではアクセスできません。

9. 以下の図に示すように、コンピューター B の Charles は HTTP 要求を記録できます。

 

 

9. まとめ

リバース プロキシは、ユーザーとアプリケーション サーバーの間に配置され、ユーザーとサーバーを接続する仲介者です。

だから私たちはできる

1. キャッシュ。サーバーの応答を独自のメモリにキャッシュし、サーバーへの負荷を軽減します。

2. 負荷分散、ユーザーリクエストを複数のサーバーに割り当てます。

3. アクセス制御

4. 特別なことを行うために、いくつかの特別なものを追加します (IPS 侵入防御システム、Web アプリケーション ファイアウォールなど)。

さて、今日は遅くなりましたので、ホン兄弟がここで説明し、共有します。辛抱強く読んでいただきありがとうございます。お役に立てれば幸いです。」

 

 

おすすめ

転載: blog.csdn.net/m0_73409141/article/details/131899079