ホームページ 運用・保守 Linuxの運用と保守 FTP アクティブ モードとパッシブ モード - FTP サーバーに接続できないのはなぜですか?

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

Nov 21, 2020 pm 05:33 PM
ftp

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

nginx リバースプロキシ FTP サーバーをセットアップする方法 nginx リバースプロキシ FTP サーバーをセットアップする方法 May 17, 2023 am 09:31 AM

1. nginx をインストールする 2. vsftpd をインストールする 3. nginx 構成ファイル nginx.conf を変更する 3.1 最初の行に ftp ユーザー userftpuser を追加する; 3.2 関連するパスサーバーを構成する { listen80; #nginx プロキシポート server_namelocalhost; #ftp サーバーアドレスの場所/ image{ root /home/ftpuser; #プロキシ FTP サーバーのフォルダーの絶対パス Indexftpuser; #ようこそページを設定します

Go での FTP の使用: 完全ガイド Go での FTP の使用: 完全ガイド Jun 17, 2023 pm 06:31 PM

インターネットの急速な発展に伴い、ファイル転送プロトコル (FTP) は常に重要なファイル転送方法となっています。 Go 言語では、FTP を使用してファイルを転送することが多くの開発者のニーズとなる可能性があります。しかし、Go言語でのFTPの使い方がわからない人も多いのではないでしょうか。この記事では、FTPサーバーへの接続からファイル転送まで、Go言語でFTPを使う方法と、エラーや例外の処理方法について解説します。 FTP 接続の作成 Go 言語では、標準の「net」パッケージを使用して FTP に接続できます。

PHPとFTP:Webサイト開発における複数部門間でのファイル共有を実現 PHPとFTP:Webサイト開発における複数部門間でのファイル共有を実現 Jul 28, 2023 pm 01:01 PM

PHPとFTP:Webサイト開発における複数部門間でのファイル共有を実現 インターネットの発展に伴い、情報発信や事業推進にWebサイトプラットフォームを利用する企業が増えています。ただし、複数の部門間でのファイル共有とコラボレーションをどのように実現するかが問題になります。この場合、PHP と FTP は最も一般的に使用されるソリューションの 1 つになります。この記事では、Webサイト開発においてPHPとFTPを使って複数部門間でのファイル共有を実現する方法を紹介します。 1. FTP の概要 FTP (FileTransferPr)

Linux での FTP コマンドは何ですか? Linux での FTP コマンドは何ですか? Mar 21, 2023 am 09:59 AM

Linux での FTP コマンドには、1. ftp コマンド、2. close コマンド、3. disconnect コマンド、4. open コマンド、5. user コマンド、6. account コマンド、7. bye コマンド、8. quit コマンド、9. help が含まれます。コマンド ; 10. rhelp コマンド; 11. ascii コマンド; 12. binary/bi コマンド; 13. bell コマンドなど

PHP 経由で FTP サーバー上のディレクトリとファイルを比較する方法 PHP 経由で FTP サーバー上のディレクトリとファイルを比較する方法 Jul 28, 2023 pm 02:09 PM

PHP を使用して FTP サーバー上のディレクトリとファイルを比較する方法 Web 開発では、ローカル ファイルと FTP サーバー上のファイルを比較して、2 つのファイル間の一貫性を確保する必要がある場合があります。 PHP は、この機能を実装するためのいくつかの関数とクラスを提供します。この記事では、PHP を使用して FTP サーバー上のディレクトリとファイルを比較する方法を紹介し、関連するコード例を示します。まず、FTP サーバーに接続する必要があります。 PHP は、FTP サーバーを確立するための ftp_connect() 関数を提供します。

Linux FTP 530 とはどういう意味ですか? Linux FTP 530 とはどういう意味ですか? Mar 14, 2023 am 10:16 AM

linux ftp530 は、linux ftp ログイン エラー 530 を意味します。解決策は次のとおりです: 1. "cat /etc/shells" をチェックして、ユーザーのホーム ディレクトリとログイン シェルが存在するかどうかを確認します。存在しない場合は追加します。 2. "/var /log" をチェックします。 /secure」ファイルを編集し、パスワードの有効期限をリセットします。

PHPを使用してFTPファイルアップロードの進行状況バーを実装する方法 PHPを使用してFTPファイルアップロードの進行状況バーを実装する方法 Jul 30, 2023 pm 06:51 PM

PHP を使用して FTP ファイル アップロード プログレス バーを実装する方法 1. 背景の紹介 Web サイト開発では、ファイル アップロードは一般的な機能です。大きなファイルのアップロードでは、ユーザー エクスペリエンスを向上させるために、多くの場合、ファイルのアップロード プロセスをユーザーに知らせるために、アップロードの進行状況バーを表示する必要があります。この記事では、PHPを使用してFTPファイルアップロードのプログレスバー機能を実装する方法を紹介します。 2. FTP ファイルアップロードのプログレスバー実装の基本的な考え方. FTP ファイルアップロードのプログレスバーは通常、アップロードされたファイルのサイズとアップロードされたファイルのサイズを計算することによって計算されます。

FTP を使用して Python でファイルをアップロードする方法 FTP を使用して Python でファイルをアップロードする方法 Apr 29, 2023 am 09:49 AM

FTP の概要 FTP は、ネットワーク上でファイルを転送するための標準プロトコルであるファイル転送プロトコル (FileTransferProtocol) です。 FTP クライアントは、ローカルからサーバーにファイルをアップロードしたり、サーバーからローカルにファイルをダウンロードしたりできます。 ftplib モジュール Python は、Python で FTP クライアント機能を実装するための標準ライブラリ ftplib を提供します。 ftplib を使用すると、FTP サーバーに接続し、ファイルのアップロードやダウンロードなどのさまざまな FTP 操作を実行できます。コードの説明 以下は、Python を使用して FTP 経由でファイルをアップロードするためのサンプル コードです。

See all articles