FTP アクティブ モードとパッシブ モード - FTP サーバーに接続できないのはなぜですか?

齐天大圣
リリース: 2020-11-23 14:16:51
オリジナル
6089 人が閲覧しました

FTP は一般的なサービスとは異なり、コマンド チャネルとデータ送信チャネルの 2 つのポートを同時に開く必要があります。データ伝送チャネルの確立の違いに応じて、アクティブモードとパッシブモードに分けられます。ここでは、アクティブ モードのワークフローと問題が発生した場合の解決方法について詳しく説明します。

アクティブ モード プロセス

コマンド チャネルの確立。クライアントは、サーバーのポート 21 との接続を確立するために 1024 より大きいポートをランダムに選択します。接続が確立されると、クライアントはその接続を使用して、ファイル名のクエリ、ファイルのアップロード、ダウンロードなどのコマンドを FTP サービス上で実行できます。ファイルなど。コマンドはこのチャネルを通じて実行されます。

アクティブ モードを使用するようにサーバーに通知します。ポート 21 はコマンド実行のみに使用され、実際に転送する必要があるファイルについては、別のポートを開く必要があります。クライアントは、ファイル転送用に別のポートをランダムに開き、ポート 21 を通じて 2 つの情報を FTP サーバーに通知します。クライアント ユーザーのファイル転送ポートは、ファイル転送にアクティブ モードを使用します。

ftp サーバーは、クライアント への接続をアクティブに確立します。 FTP サーバーは 2 つの情報を認識すると、ポート 20 を介してクライアントとの接続をアクティブに確立します。接続が確立されると、その接続を介してファイルを転送できるようになります。

アクティブ モードで発生する可能性がある問題

アクティブ モードで FTP サーバーに接続できない場合は、次の状況が考えられます。

  • サーバー ポートが開始されていません

  • #サーバー ファイアウォール
  • クライアントが存在する LAN見つかった場所には NAT 変換があります
  • アクティブ モードでは、一般的に開かれるポートは 21 (コマンド チャネル) と 20 (ファイル転送チャネル) です。どちらのポートも不可欠です。さらに、ファイアウォールはこれら 2 つのポートを許可する必要もあります。クライアント ホストの場合、Telnet を使用して、これら 2 つのポートが開いているかどうかをテストできます。

ポートとファイアウォールの問題は比較的簡単に解決できますが、NAT 変換の問題は解決が困難です。 NAT 変換がどのように問題を引き起こすかを見てみましょう コマンド チャネルの確立はクライアントによって開始されるため、チャネルは正常に確立されます。ただし、サーバーがクライアントへのデータ チャネルをアクティブに確立する場合、サーバーはクライアントの IP ではなく NAT IP を認識します。したがって、サーバーはポート 20 を使用して、NAT ポートの 1 つ (ポート 1042 など) にアクティブな接続要求を送信します。ただし、NAT はそのポートを開かなかったため、アクティブな接続の確立は失敗しました。では、この問題をどうやって解決すればよいでしょうか?パッシブモードを使用してください。

パッシブ モード プロセス

コマンド チャネルの確立

。この段階はアクティブモードと同じです。

クライアントは PASV リンク要求を発行します。

クライアントはコマンド チャネルを通じて PASV パッシブ モード要求をサーバーに送信し、サーバーの応答を待ちます。

サーバーはデータ ポートを開始し、クライアントに通知します

。サーバーはクライアントの PASV リクエストを受信すると、データ送信用のポートを開始します。このポートはランダム (1024 ~ 65535) または指定できます。次に、コマンド チャネルを通じてクライアントに通知します。

クライアントはデータ ポートを開始し、サーバー

との接続を確立します。クライアントはサーバーから情報を受け取り、サーバーがデータ送信に使用するポートを認識しており、このときクライアントは 1024 より大きいポートをランダムに開き、このポートを介してサーバーとの接続を確立します。 その他の関連技術記事については、

linux システム チュートリアル

列をご覧ください。

以上がFTP アクティブ モードとパッシブ モード - FTP サーバーに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ftp
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!