パッシブ FTP。 アクティブおよびパッシブ FTP モード

13.04.2019 プログラムとサービス

» FTPサーバーの動作モード

FTP には 2 つの接続が必要です。1 つ目はコマンド用、2 つ目はデータ用です。最初の接続 (データ) は常にクライアントからサーバーに送信されますが、2 番目の接続の方向はアクティブ モードとパッシブ モードで異なります。

アクティブ FTP の場合、2 番目の接続はサーバーからクライアント コンピューターに行われますが、NAT とファイアウォールによりそのような接続が不可能になったため、彼らは パッシブモードこの場合、サーバーは (最初の接続を通じて) クライアントに 2 番目の接続を開くポートを指示し (通常、ポートはサーバーによって一定の範囲でランダムに選択されます)、2 番目の接続もクライアント コンピューターからサーバーに開かれます。 。

1つ 大事なポイントほとんどの FTP サーバー (少なくとも Windows では) では 2 番目の接続のポート範囲を制限できないため、ファイアウォールの構成が複雑になり、多くの FTP サーバーで通常の保護が不可能になります。 例えば、 サーブユー- この範囲を制限できる数少ないものの 1 つ。

TMeter の FAQ より

FTP プロトコルには 2 つの要素が含まれます。 さまざまなつながりクライアントと FTP サーバーの間。 最初の接続は「コントロール接続」と呼ばれます。 これは、クライアントが FTP サーバーに「ログイン」したり、FTP サーバー内のディレクトリ間を移動したりすることを目的としています。 サーバーからファイルのリストを取得したり、サーバーからファイルをダウンロードしたり、サーバーにファイルをアップロードするには、「データ接続」と呼ばれる 2 番目の接続が使用されます。

制御接続はアクティブ モードとパッシブ モードで同じです。 クライアントは、動的ポート (1024-65535) から FTP サーバー上のポート番号 21 への TCP 接続を開始し、「こんにちは! あなたとつながりたいです。 これが私の名前とパスワードです。」 さらなるアクションどの FTP モード (アクティブまたはパッシブ) が選択されているかによって異なります。

アクティブモードクライアントが「こんにちは!」と言ったとき また、サーバーにポート番号も伝えます(から ダイナミックレンジ 1024-65535) を使用して、サーバーがクライアントに接続してデータ接続を確立できるようにします。 FTP サーバーは、データ転送のために TCP ポート番号 20 を使用して、指定されたクライアント ポート番号に接続します。

受け身このモードでは、クライアントが「こんにちは!」と言うと、サーバーはデータ接続を確立するために接続できる TCP ポート番号 (ダイナミック レンジ 1024 ~ 65535) をクライアントに伝えます。

アクティブとの主な違いは、 FTPモードパッシブ FTP モードは データ接続を開く側。 アクティブ モードでは、クライアントは FTP サーバーからの接続を受け入れる必要があります。 パッシブ モードでは、クライアントが常に接続を開始します。

アクティブな接続の例:

制御接続: クライアント ポート 1026 >< Server port 20

パッシブ接続例:

制御接続: クライアント ポート 1026 > サーバー ポート 21 データ接続: クライアント ポート 1027< Server port 2065

3 つの答え

アクティブとパッシブは、FTP が動作できる 2 つのモードです。 FTP は、クライアントとサーバーの間にコマンド チャネルとデータ チャネルという 2 つのチャネルを使用します。これらは実際には別個の TCP 接続です。 コマンド チャネルはコマンドと応答用であり、データ チャネルは実際のファイル転送用です。 これ 素晴らしい方法現在のデータ転送が完了するのを待たずにコマンドをサーバーに送信します。

アクティブ モードでは、クライアントはコマンド チャネル (クライアント ポート X からサーバー ポート 21(b) まで) を確立しますが、サーバーはデータ チャネル (サーバー ポート 20(b) からクライアント ポート Y まで、Y はクライアント)。

パッシブ モードでは、クライアントは両方のチャネルを確立します。 この場合、サーバーはクライアントにデータ チャネルに使用するポートを伝えます。

パッシブ モードは通常、FTP サーバーがデータ チャネルを確立できない状況で使用されます。 この主な理由の 1 つはネットワーク ファイアウォールです。 ftp.microsoft.com への FTP チャネルを開くことを許可するファイアウォール ルールがある場合でも、 Microsoftサーバーファイアウォールを介してデータ チャネルを開けない場合があります。

パッシブ モードは、クライアント側で両方のタイプのチャネルを開くことでこの問題を解決します。 これを確実に明確にするには、次のようにします。

アクティブモード:

  • クライアントは PORT 2001(a) をサーバーに送信し、サーバーはコマンド チャネルで確認応答します。
  • サーバーは、サーバー ポート 20 (b) からクライアント ポート 2001 (a) へのデータ チャネルを開きます。
  • クライアントはデータ チャネルを確認します。

パッシブモード:

  • クライアントは、クライアント ポート 2000(a) からサーバー ポート 21(b) へのコマンド チャネルを開きます。
  • クライアントはコマンド チャネルで PASV をサーバーに送信します。
  • サーバーは、ポート 1234(a) のリッスンを開始した後、(コマンド チャネルで) ポート 1234(a) を送り返します。
  • クライアントは、クライアント 2001(a) からサーバー ポート 1234(a) へのデータ チャネルを開きます。
  • サーバーはデータ チャネルを確認します。

この時点で、コマンドとデータ チャネルがオープンになります。

(a) パッシブ モードでのサーバーのデータ リンク ポートの選択はサーバー固有であるため、クライアント側のポートの選択はクライアント固有であることに注意してください。

(b) さらに、ポート 20 と 21 の使用は (強力ではありますが) 条件付きでしかないことに注意してください。 これらのポートを使用するという絶対的な要件はありませんが、クライアントとサーバーはどのポートを使用するかについて合意する必要があります。 別のポートを使用してクライアントから隠蔽しようとする実装を見たことがあります(私の意見では無駄です)。

最近職場でこの問題に遭遇したので、ここで何か別のことを言うべきだと思います。 FTPがどのように動作するかを画像を使用して説明します 追加のソース前の回答については。

アクティブモード:

パッシブモード:

構成中 アクティブモードサーバーはランダムなクライアント ポートへの接続を試みます。 おそらく、このポートは事前定義されたポートの 1 つではありません。 その結果、接続しようとしてもファイアウォールによってブロックされ、接続は確立されません。

パッシブ構成では、クライアントが接続の開始者となるため、この問題は発生しません。 もちろん、サーバー側にもファイアウォールを設けることもできます。 ただし、サーバーは受信することが期待されているため、 大量クライアントと比較して接続要求が多い場合、サーバー管理者が状況に適応して、パッシブ モード構成を満たすためにポートの選択を開くのは論理的です。

したがって、パッシブ モードで FTP をサポートするようにサーバーをセットアップすることをお勧めします。 ただし、パッシブ モードでは、クライアントがランダムなサーバーに接続する必要があるため、システムが攻撃に対して脆弱になります。 したがって、このモードをサポートするには、サーバーに複数のポートが使用可能である必要があるだけでなく、ファイアウォールもそれらのすべてのポートへの接続を許可する必要があります。

リスクを軽減するには、 英断それは、サーバー上のポートの範囲を指定し、ファイアウォール上でその範囲のポートのみを許可することです。

入手用 追加情報公式ドキュメントを確認してください。

私の記事「FTP 接続モード (アクティブ vs. パッシブ)」の縮小版:

FTP 接続モード (アクティブまたはパッシブ) によって、データ接続がどのように確立されるかが決まります。 どちらの場合も、クライアントは FTP サーバーのポート 21 への TCP 制御接続を作成します。 これは、他のファイル転送プロトコル (SFTP、SCP、WebDAV) や他の TCP クライアント アプリケーション (Web ブラウザなど) と同様、標準の送信接続です。 したがって、通常、制御接続を開くときに問題はありません。

FTP が他のファイル転送プロトコルよりも複雑なのは、ファイル転送です。 他のプロトコルはセッション管理とファイル (データ) 転送に同じ接続を使用しますが、FTP プロトコルはファイルとディレクトリの転送に別の接続を使用します。

アクティブ モードでは、クライアントはサーバーからの受信データ接続のランダム ポートでの待機を開始します (クライアントは FTP PORT コマンドを送信して、どのポートで待機しているかをサーバーに通知します)。 現在では、クライアントがファイアウォール (組み込みの Windows ファイアウォールなど) または NAT ルーター (ADSL モデムなど) の背後にあり、受信 TCP 接続を受け入れることができないのが一般的です。

このため、パッシブ モードが導入され、現在では主に使用されています。 最も複雑な構成は、(おそらく)経験の浅いユーザーがクライアント側で個別に実行するのではなく、経験豊富な管理者によってサーバー側で 1 回だけ実行されるため、パッシブ モードの使用が推奨されます。

パッシブモードではクライアントが使用します 制御接続 PASV コマンドをサーバーに送信し、サーバーからサーバーの IP アドレスとサーバーのポート番号を受信します。クライアントはそれを使用して、サーバーの IP アドレスとサーバーのポート番号への接続を開きます。

パッシブモードのネットワーク構成

パッシブ モードでは、構成負荷のほとんどはサーバー側にあります。 サーバー管理者は、以下の説明に従ってサーバーを構成する必要があります。

FTP サーバー側のファイアウォールと NAT は、FTP ポート 21 への受信接続を許可/ルーティングするだけでなく、受信データ接続用のいくつかのポートでも構成する必要があります。 通常、FTP サーバー ソフトウェアには、サーバーが使用するポートの範囲を構成するための構成オプションがあります。 また、同じ範囲をファイアウォール/NAT 上でオープン/ルーティングする必要があります。

FTP サーバーが NAT の背後にある場合、PASV コマンドに応答してクライアントに外部 IP アドレスを提供できるように、FTP サーバーはその外部 IP アドレスを知っている必要があります。

アクティブモードのネットワーク構成

アクティブ モードでは、構成負荷のほとんどはクライアント側にあります。

クライアント側のファイアウォール (例: Windows ファイアウォール) と NAT (例: ADSL モデム ルーティング ルール) は、受信データ接続のポート範囲を許可/ルーティングするように構成する必要があります。 Windows でポートを開くには、[コントロール パネル] > [システムとセキュリティ] > [Windows ファイアウォール] > [Windows ファイアウォール] に移動します。 追加オプション" > "受信ルール" > "新しいルール"。ポートを NAT (存在する場合) にルーティングするには、そのドキュメントを参照してください。

NAT がネットワーク上にある場合、FTP クライアントはその外部 IP アドレスを知っている必要があり、WinSCP は PORT コマンドを使用してその外部 IP アドレスを FTP サーバーに提供する必要があります。 これにより、サーバーがクライアントに適切に接続してデータ接続を開くことができます。 一部の FTP クライアントは外部 IP アドレスを自動的に検出できますが、手動で構成する必要があるものもあります。

スマートファイアウォール/NAT

一部のファイアウォール/NAT は、FTP 接続への接続をチェックしてデータ ポートを自動的に開閉しようとしたり、データ接続の IP アドレスを制御接続トラフィックに変換しようとします。

このようなファイアウォール/NAT を使用する場合、単純な非暗号化 FTP には上記の設定は必要ありません。 ただし、制御接続トラフィックは暗号化されており、ファイアウォール/NAT はそれを検査および変更できないため、これは FTPS では機能しません。

24.06.2018

    略語 FTP英語に由来する Fイル T移行 P rotocol (ファイル転送プロトコル) - プロトコル アプリケーションレベルファイルを共有するには トランスポートプロトコル 2 台のコンピュータ (FTP クライアントと FTP サーバー) 間の TCP/IP。 これは最も古いプロトコルの 1 つですが、現在でも積極的に使用されています。

FTP プロトコルは、次の問題を解決するように設計されています。

  • リモートホスト上のファイルとディレクトリにアクセスする
  • クライアントがタイプから独立していることを保証する ファイルシステムリモートコンピュータ
  • 信頼性の高いデータ伝送
  • リモート システム リソースの使用。
  • FTP プロトコルは、一度に 2 つの接続チャネル (転送用に 1 つ) をサポートします。 チームとその実装結果、もう 1 つは共有用です データ。 で 標準設定 FTP サーバーは、TCP ポート 21 を使用してコマンドの送受信用のチャネルを構成し、TCP ポート 20 を使用してデータの送受信用のチャネルを構成します。

    FTP サーバーは、TCP ポート 21 で FTP クライアントからの接続を待機し、接続を確立した後、受け入れて処理します。 FTPコマンド 、普通を表す テキスト文字列。 コマンドは、接続パラメータ、転送されるデータのタイプ、およびファイルとディレクトリに関するアクションを定義します。 送信パラメータに同意した後、交換参加者の 1 つがパッシブ モードになり、データ交換チャネルへの着信接続を待機し、2 番目の参加者がデータ交換チャネルへの接続を確立します。 このポートそして転送を開始します。 転送が完了すると、データ接続は閉じられますが、制御接続は開いたままになるため、FTP セッションを継続して新しいデータ転送セッションを作成できます。

    アクティブ モードまたはパッシブ モードで動作でき、データ接続の確立方法が決まります。 したがって、通常、制御接続を開くときに問題はありません。 アクティブ モードでは、クライアントはサーバーからの受信データ接続をランダム ポートでリッスンし始めます。

    このため、パッシブ モードが導入され、現在では主に使用されています。 最も複雑な構成は、経験の浅いユーザーがクライアント側で個別に実行するのではなく、経験豊富な管理者がサーバー側で 1 回だけ実行するため、パッシブ モードを使用することをお勧めします。

    FTP プロトコルは、クライアントとサーバーの間だけでなく、2 つのサーバー間でもデータを転送するために使用できます。 で この場合, FTPクライアント両方の FTP サーバーとの制御接続を確立し、一方をパッシブ モードに切り替え、もう一方をアクティブ モードに切り替えて、それらの間にデータ送信チャネルを作成します。

    FTP クライアントは、FTP サーバーに接続し、サーバーのディレクトリの内容を表示し、ファイルやフォルダーを受信、転送、削除するために必要な操作を実行するプログラムです。 このようなプログラムは、通常のブラウザ、オペレーティング システム コンポーネント、または特別に開発されたブラウザとして使用できます。 ソフトウェア製品、 のような、 人気マネージャーダウンロード ダウンロードマスターまたは多機能無料 FileZilla FTP クライアント.

    これらのセッション例は、状況をもう少し明確にするのに役立ちます。 従来、これはコマンド ポート用のポート 21 とデータ ポート用のポート 20 です。 ただし、モードによっては、データ ポートが常にポート上にあるわけではないことが判明すると、混乱が始まります。

    次に、サーバーはローカル データ ポート (port) からクライアントの指定されたデータ ポートに接続します。 ステップ 3 では、サーバーはローカル データ ポート上で、前にクライアントによって指定されたデータ ポートへの接続を開始します。 クライアント側のファイアウォールから見ると次のようになります 外部システム、通常はブロックされる内部クライアントへの接続を開始します。

    FTP プロトコルは、クライアントとサーバーが TCP パケットの中間変換を行わずに直接対話していた時代に開発されました。標準モードでは、クライアントの主導だけでなく、クライアント側でも TCP 接続を作成できることを前提としています。 TCP 上の TCP ポート 20 からのサーバーのイニシアチブ - クライアント ポート。この番号はデータ セッションの作成中に送信されます。

    通常のサーバー出力は黒で表示され、ユーザー入力は強調表示されます。 大胆に。 このダイアログ ボックスには興味深い点がいくつかあります。 以下の例でわかるように、カンマで区切られた一連の 6 つの数字としてフォーマットされます。 実際のポートを見つけるには、5 番目のオクテットに 256 を掛け、その合計に 6 番目のオクテットを加えます。

    次に、ステップ 3 で、クライアントはそのデータ ポートから指定されたサーバー データ ポートへのデータ接続を開始します。 最も 大問題それは、サーバー上の多数のポートへのリモート接続を許可する必要があることです。 詳細については、付録 1 を参照してください。 2 番目の問題は、パッシブ モードをサポートするクライアントのサポートとトラブルシューティングです。

    現実 今日ほとんどの場合、インターネットへの接続にブロードキャスト技術が使用されるため、サーバーからクライアントへのこのような TCP 接続は、ほとんどの場合不可能であるか、実装が非常に困難です。 ネットワークアドレス NAT(ネットワークアドレス変換) クライアントが持っていない場合 ネットワークインターフェース、直接作成可能 TCP接続インターネットから。 典型的なスキーム 標準接続インターネットは次のようになります。

    これは、サーバーとファイアウォールの構成によって良くも悪くもなります。 ここでは、ポートがクライアントではなくサーバー システムで開かれていることがわかります。 クライアントはサーバーに対して両方の接続を確立しますが、そのうちの 1 つはランダムな高ポートを持ち、ほぼ確実にサーバー側のファイアウォールによってブロックされます。

    パッシブモードのネットワーク構成

    幸いなことに、ある程度の妥協点はあります。 したがって、この範囲のポート以外のものはすべてサーバー側のファイアウォールになる可能性があります。 これによってサーバーに対するリスクが排除されるわけではありませんが、大幅に軽減されます。 付録 1 に記載。パッシブ モードでは、構成負荷のほとんどはサーバー側にあります。 サーバー管理者は、以下の説明に従ってサーバーを構成する必要があります。

    インターネット接続は経由で行われます 特別な装置 - ルーター(NAT機能付きルータ)を2台以上持つ ネットワークポート- プロバイダーのネットワークに接続されている 1 つは、ルーティング可能な IP アドレス (いわゆる「ホワイト IP」) (例: 212.248.22.144) を持つネットワーク インターフェイスと、ローカル ネットワーク デバイスをプライベート ネットワークに接続するためのネットワーク インターフェイスを持つポートを備えています。ルーティング不可能な IP アドレス、たとえば 192.168 .1.1 (「グレー IP」)。 から接続を作成する場合 ネットワークデバイス ローカルネットワーク外部ネットワーク ノードへの IP パケットはルーターに送信され、送信者のアドレスが送信者のアドレスになるようにアドレスとポートの変換が実行されます。 ホワイトIPアドレス。 変換結果は保存され、応答パケットを受信すると逆アドレス変換が行われます。 したがって、ルーターは、ローカル ネットワーク上のあらゆるデバイスからの TCP/IP パケットを確実に転送します。 外部ネットワーク受信した応答パケットを転送します。 ただし、TCP 応答パケットに関連しないパケットがプロバイダーのネットワークに接続されたネットワーク インターフェイスの入力で受信された場合、ルーター ソフトウェアでは次のような対応オプションが可能です。

    アクティブモードのネットワーク構成

    アクティブ モードでは、構成負荷のほとんどはクライアント側にあります。 これにより、サーバーがクライアントに適切に接続してデータ接続を開くことができます。 これら 2 つの通信接続を使用すると、 さまざまなモードこの作業により、接続がどの方向にインストールされるか (アクティブ モードとパッシブ モード) が決まります。

    クライアント上で実行されている一般的なファイアウォールは、サーバーからのこのリンク接続要求を一方的なものとして認識し、パケットをドロップし、ファイル転送の失敗を引き起こします。 デフォルトでは、サーバーは一時的な範囲内の使用可能なポートを使用します。

    パケットを処理するネットワーク サービスがないため、パケットは無視されます。

    パッケージが受信され、処理されます ネットワークサービスルーター自体 (そのようなサービスが存在し、受信したパケットに番号が示されているポートで着信接続 (「リスニング」) を待っている場合)。

    パケットは、ルーター設定で指定されたポート マッピング ルールに従って、このタイプの受信接続を予期するローカル ネットワーク上のサーバーに転送されます。

    FileZilla FTP サーバーのインストールと構成

    開ける コマンドライン管理者。 このドキュメントでは、アクティブ モードまたはパッシブ モードを使用してファイル転送プロトコル サーバーに接続する方法について説明します。 通常のアクティブ モード セッションでは、コマンド ポートはポート 21 を使用し、データ ポートはポート 21 を使用します。 ただし、パッシブ モードを使用する場合、データ ポートが常にそのポートを使用するとは限りません。

    ネットワーク アドレス変換設定により、この接続要求がブロックされます。 ファイアウォール上でパッシブ範囲のポートを開く必要がある場合もあります。 変更を構成ファイルに保存します。 。 次のコマンドを実行して、サーバーのファイアウォールのパッシブ ポート範囲を介した接続を許可します。

    したがって、現在、FTP プロトコルを使用する動作モードは、クライアントからサーバーの TCP ポートに対してのみ TCP 接続を行う、いわゆる「パッシブ モード」が主流になっています。 アクティブ モードは、サーバーからクライアント ポートに TCP 接続が可能な場合 (たとえば、サーバーが同じローカル ネットワーク上にある場合) に使用されます。 FTP 接続モードは、特別なコマンドを使用して選択します。

    これらの変更を永続的にするには、そうする必要があります。 これらの変更を永続的にするには、構成ファイルにパッシブ ポートを追加する必要があります。 システムのアップデートにより、これらの構成変更が上書きされる可能性があります。 。 これらの問題は、ファイアウォールが存在しない場合でも、ファイアウォールやその他の接続の問題に似ている場合があります。

    FTP の 2 つのデータ転送モード

    これらの問題を解決するには、次の手順に従います。 このブログはあなたの質問に疑問を残さずに答えます。 アクティブ モードはデフォルトのモードであり、以前はこれが唯一のモードでした。 ユーザーが任意のランダムなポートから接続してファイルを転送する場合に機能します。 このファイル転送により、クライアントはサーバーのポート 21 に接続されます。 サーバーはポート 20 からデータ チャネル専用のクライアント ポートに接続します。

    PASV- クライアントはパッシブ モードでデータ交換を実行するコマンドを送信します。 サーバーは、データを送受信するために接続する必要があるアドレスとポートを返します。 パッシブ モードが設定された FTP セッションのフラグメントの例:

    PASSV- FTPクライアントからFTPサーバーに送信されるパッシブモードに切り替えるコマンド

    最新のネットワークにおける FTP の問題

    接続が確立されると、これらのクライアント ポートとサーバー ポートを介してファイル転送が確立されます。 次に、パッシブモードで見てみましょう。 このコマンドは、ポート番号の接続要求として機能します。 クライアントがポートを受信すると、すぐに 2 番目の接続が開始され、データが送信されます。 この手順は、ポート転送を使用するように構成されたファイアウォールと連携して動作します。 追加のセキュリティ。 その後、データはファイアウォール ポートからサーバー ポートに転送されます。

    227 パッシブモードへの移行 (212,248,22,144,195,89)- FTP サーバー応答。227 は応答コード、パッシブ モードへの切り替えに関するテキスト メッセージ、括弧内はデータ送信チャネルの作成に使用される IP アドレスとポート番号です。 アドレスとポート番号は次のように表示されます。 10進数、 カンマで区切られた。 最初の 4 つの数値は IP アドレス (212.248.22.144) で、残りの 2 つの数値はポート番号を指定します。これは次の式で計算されます。最初の数値に 256 を掛け、2 番目の数値を結果に加算します。 この例ではポート番号 195*256 +89 = 50017

    これにより、クライアントはサーバーに直接アクセスできなくなります。 これは、クライアントへのデータ接続を開くのに役立ちます。 次に、クライアントはサーバーへのデータ接続を作成します。 これは、デフォルト値は安全ではないため、クライアントはデフォルト値に依存すべきではないというアドバイスです。

    アクティブおよびパッシブ FTP モード

    相手側が信号側に接続すると、データ伝送が行われます。 データ転送が完了すると、データ転送を開始した側がデータ接続を閉じ、ファイルの終了を通知します。 サーバー ファイアウォールでパッシブ ポート範囲を有効にする必要があります。

    PORT クライアント IP アドレス ポート番号- クライアントは、アクティブ モードでセッションを確立するコマンドを送信します。 IP アドレスとポート番号は、前の例と同じ形式で指定します。たとえば、PORT 212.248.22.144,195,89 データ転送を整理するために、サーバー自体が指定されたポートでクライアントに接続します。

    FileZilla FTP サーバーのインストールと構成。

    インストールパッケージをダウンロードする FileZillaサーバーあなたのバージョンに合わせて オペレーティング·システムで可能

    皆様のご質問にお答えできることを願っております。 これに関してさらにご質問がございましたら、お知らせください。 データ接続は、サーバー ホストの一時ポートからクライアント ホストの一時ポートへ確立されます。 パッシブ モードでは、制御接続とデータ接続の両方が、ファイアウォールを通過してインターネットに向けて確立されます。 制御接続 データ接続。 。 デフォルトはアクティブ モードですが、通常はユーザーがパッシブ モードに切り替えることができます。

    拡張パッシブ モード 拡張パッシブ モードはパッシブ モードと非常によく似ています。 使用するサポートは、ネットワーク トポロジによって異なります。 ファイアウォール管理者は、パッシブ データ範囲の静的フィルター ルールを追加する必要があります。 この場合、アドバンストパッシブモードを使用する必要があります。 。 これらのモードは、標準およびパッシブと呼ばれます。

    サーバーのインストールが進行中です 標準的な方法でただし、サーバー コントロール パネル設定を選択する項目を除きます。

    これは、すべてのユーザーが使用できるメインのサーバー管理ツールです。 必要な設定。 デフォルトでは、コントロール パネルはパスワード アクセスなしのループバック インターフェイスで動作します。 必要に応じて、たとえば必要に応じて リモコン FTP サーバーの場合、これらの設定は変更できます。

    提供するファイアウォール構成 全権アクセス要求されていない接続のすべての一時ポートへの接続は、安全でないとみなされる可能性があります。 マクロの使用は、上記のルールを生成するための推奨される方法です。 ここではいくつかの例を示します。

    動的IPアドレスの問題を解決する

    サーバーはマスカレード ゲートウェイの背後で実行されます。 このようなケースが発生すると、 コンソールメッセージ、これと同様です。 私の解決策は、次のルールを追加することです。 ファイアウォールに問題がある場合は、このセクションをよく読んでください。

    インストールが完了すると、サーバーに接続するための招待ウィンドウが開きます。

    IP アドレス、ポート番号、およびパスワード (インストール プロセス中に指定した場合) を入力すると、FileZilla Server コントロール パネルが開きます。


    ウィンドウの上部には、メイン メニューとコントロール パネルのボタンがあります。 以下に 2 つの領域があります - 情報メッセージサーバーと統計情報。 全体的に、FileZilla Servver の FTP コントロール パネルは非常にシンプルで使いやすいです。 主なメニュー項目:

    接続が確立されると、クライアントはサーバーに対して認証を行い、その接続は 1 つのクライアントとなり、サーバーは互いに「チャット」します。 この接続はファイルの転送には使用されず、ファイル データを転送するためにファイルごとに新しい接続が確立されます。 これらの新しいデータ チャネルを開くには、アクティブとパッシブの 2 つの方法があります。

    その後、サーバーは独自のデータ ポートを使用してこのクライアント データ ポートに接続します。 ローカルポートデータ、つまりポートです。 ファイル転送プロトコルは、今日のインターネット上で最も古く、最も一般的に使用されているプロトコルの 1 つです。 その目的は、ユーザーがリモート ホストに直接ログインしたり、リモート システムの使用方法の知識を必要とせずに、ネットワーク上のコンピュータ間でファイルを安全に転送することです。 ユーザーが次のファイルにアクセスできるようにします。 リモートシステム単純なコマンドの標準セットを使用します。

    ファイル- FTP サーバーのコントロール パネルの動作モード。 サブアイテムが含まれています

    - サーバーに接続する- サーバーに接続します
    - 切断する- サーバーから切断します
    - やめる- コントロールパネルのシャットダウン。

    サーバ- FTPサーバー管理。 次のサブパラグラフが含まれます。

    - アクティブ- FTPサーバーの起動/停止。 で チェックボックス FTP サーバーは実行されていますが、無効にすると停止します。
    - ロック- サーバーへの接続を禁止/許可します。 チェックボックスをオンにすると、サーバーへの新規接続が禁止されます。

    複数のポート、複数のモード

    このポートは、サーバーにすべてのコマンドを発行するために使用されます。 サーバーから要求されたデータはすべて、データ ポートを介してクライアントに返されます。 データ接続のポート番号とデータ接続の初期化方法は、クライアントがアクティブ モードでデータを要求しているかパッシブ モードでデータを要求しているかによって異なります。

    以下のモードを以下に示します。 この規則は、クライアント コンピュータが任意のポートでの接続を受け入れることができる必要があることを意味します。 インターネットなどの安全でないネットワークの台頭により、クライアント マシンを保護するためにファイアウォールを使用することが一般的になりました。

    編集- 設定の編集。 サブ項目:

    - 設定- 基本的なサーバー設定。
    - ユーザー- FTPサーバーのユーザー設定
    - グループ- ユーザーグループの設定。

    例として、次の条件に合わせてサーバーを構成してみましょう。

  • サーバーは NAT の背後にあり、プライベート IP アドレスを持っていますが、インターネットからアクセスできる必要があり、パッシブ モードをサポートし、非標準の TCP ポートを使用します。 非標準ポートを使用すると可能性が低下します。 ハッカー攻撃さらに、一部のプロバイダーはトラフィック フィルタリングを使用し、標準ポート 20 および 21 をブロックします。
  • ユーザーは、サーバーからのダウンロード、サーバーへのアップロード、ファイルやフォルダーの削除と名前変更を行うことができます。
  • 動的 IP アドレスを使用する場合は、DNS 名によってサーバーの可用性を確認する必要があります。
  • サーバーは上で動作します ワークステーション Windows 7 / Windows 8 OS環境で。
  • つまり、ユーザー間でファイルを交換するために、インターネットからアクセスできる FTP サーバーを、もちろん無料で作成する必要があります。 FTP サーバー自体の必要な構成を作成することに加えて、ルーターの設定やパラメーターをいくつか変更する必要があることは明らかです。 Windowsファイアウォール、 解決 動的IPアドレスこれにより、IP アドレスの変更に関係なく、サーバーに名前でアクセスできるようになります。

    動的IPアドレスの問題を解決します。

    次に、クライアントはサーバー上のこのポートに接続して、要求された情報をダウンロードします。 パッシブ モードでは、データに接続する際のクライアント側のファイアウォールの問題は解消されますが、管理が困難になる可能性があります。 ファイアウォールサーバー側で。 これにより、サーバーのファイアウォール ルールを構成するプロセスも簡素化されます。 セクション 8「ネットワーク設定」。 特定のものに応じて ネットワーク構成このモードはアクティブまたはパッシブである必要があります。

    名前が示すように、コマンド チャネルはコマンドとそのコマンドへの応答の送信に使用され、データ チャネルはデータの送信に使用されます。 一方、データリンクに使用するポートは、選択したデータ転送モードによって異なる場合があります。 アクティブ モードを選択した場合、データ チャネルは通常ポートになります。 ただし、パッシブ モードを選択した場合、使用されるポートはランダムなポートになります。

        インターネットに接続するときに静的 IP アドレスが使用される場合と動的 IP アドレスが使用される場合は、この問題を解決する必要はありませんが、プロバイダーの設定に従って、ほとんどの場合同じになります。 それ以外の場合は、と呼ばれるテクノロジーを使用できます。 ダイナミックDNS (DDNS) . この技術を使用すると、動的 IP の変更に注意を払うことなく、DNS サーバー上の IP アドレス情報をほぼリアルタイムで更新し、登録名によってルーター (およびその背後にあるサービス) にアクセスできます。

    このテクノロジーを無料で実装するには、何らかのサービスに登録する必要があります。 ダイナミックDNS対応する IP アドレスが変更された場合に DNS レコードを更新するためのクライアント ソフトウェアをインストールします。 ダイナミック DNS サポートは通常、メーカーによって提供されます。 ネットワーク機器(D-Link、Zyxel など)、有名な DynDNS などのいくつかのホスティングおよび専門会社。 しかし、2014 年後半に、登録ユーザーに非営利目的で無料で提供されていたすべてのサービスが有料になった後、おそらく最も一般的なソリューションは、サービスに基づくダイナミック DNS の使用でした。 No-IP.orgフリーモード動的 IP を使用して 2 ノードをサポートするサービスを提供します。 のために 無料使用このサービスを利用するには、登録と、動的 IP で使用されるノードに関する情報を更新するためにサイトに定期的に (約月に 1 回) アクセスする必要があります。 ノードデータの更新をスキップするとサービスが停止するため、ノードに名前で接続できなくなります。 で 有料使用サービスのアップデートは必要ありません。

        ほぼすべて 最新のルーター(モデム) にはダイナミック DNS クライアントのサポートが組み込まれています。 通常、そのセットアップは非常に簡単です。ユーザー名とパスワード、および DDNS サービスへの登録時に受け取ったホスト名をフィールドに入力します。 Zyxel P660RU2の例


        ルーター/モデムに組み込まれた DDNS クライアントを使用することは、コンピューターの電源がオフになっているときにインターネット経由でルーターを管理するなどの追加機能を実装できるため、OS 環境で実行されている DNS データ更新ユーティリティよりも推奨されます。 リモートアクティベーション NAT テクノロジーの背後にあるコンピューターへの電源供給 ウェイク オン ラン.

    組み込みの DDNS クライアントを使用できない場合は、アプリケーション ソフトウェア (ダイナミック DNS をサポートするクライアント プログラム) を使用する必要があります。 このようなプログラムは、登録されたサービスをサポートするサーバーに定期的に接続します。 ドメイン名、インターネット接続が行われるルーターに関連付けられており、変更されたときに IP 更新プロシージャを呼び出します。 サーバーの設定は、DNS 名とインターネット接続の IP アドレスの比較が非常に短時間で完了するように行われ、アドレスの動的な性質は、関連するサービスのパフォーマンスに実質的に影響を与えません。 DNS 名。

    そして実際、何が起こっているのかについての知識があれば、すべては簡単です...理解したい人のために、以下の「理論」セクションを読んでください。残りについては、例を使用したセットアップのための写真の「ガイド」を読んでください。 ザイクセル キーネティック II ギガ(ファームウェア V2) および G6FTPサーバーホーム ネットワーク上のいずれかのコンピュータ上で。

    FTP プロトコルを使用して作業する場合、クライアントとサーバーの間に 2 つの接続、つまり制御接続 (コマンドが送信される) とデータ接続 (ファイルが送信される) が確立されます。 制御接続はアクティブ モードとパッシブ モードで同じです。 クライアントは、動的ポート (1024-65535) から FTP サーバー上のポート番号 21 への TCP 接続を開始し、「こんにちは! あなたとつながりたいです。 これが私の名前とパスワードです。」 以降のアクションは、選択されている FTP モード (アクティブまたはパッシブ) によって異なります。
    アクティブモード。 お客様から「こんにちは!」と言われたとき また、サーバーがクライアントに接続してデータ接続を確立できるように、サーバーにポート番号 (1024 ~ 65535 の動的範囲) を通知します。 FTP サーバーは、データ転送に TCP ポート番号 20 を使用して、指定されたクライアント ポート番号に接続します。 クライアントにとって、そのような接続は受信されます。 そのため、ファイアウォールまたは NAT の内側にあるクライアントをアクティブ モードで操作することは、多くの場合困難であったり、追加の設定が必要であったりします。
    パッシブモード。 パッシブ モードでは、クライアントが「こんにちは!」と言った後、サーバーはデータ接続を確立するために接続できる IP アドレスと TCP ポート番号 (ダイナミック レンジ 1024 ~ 65535) をクライアントに伝えます。 以下では、これらをパッシブ ポートと呼びます。 この場合、簡単にわかるように、そのような接続のポートは、クライアント側とサーバー側の両方で任意であることがわかります。 パッシブ モードでは、クライアントはファイアウォールを介してサーバーと簡単に連携できますが、多くの場合、サーバーがパッシブ モードをサポートするには、サーバー側でファイアウォールを適切に構成する必要があります。

    アクティブ FTP モードとパッシブ FTP モードの主な違いは、データ転送のために接続を開く側です。 アクティブ モードでは、クライアントはこの接続を次から受け入れることができる必要があります。 FTPサーバー。 パッシブ モードでは、クライアントは常にこの接続自体を開始し、サーバーはそれを受け入れる必要があります。

    パッシブ FTP モードは、ファイアウォールの内側にあるクライアントに接続するように設計されています。 ホーム ネットワークでは、ユーザーが問題なくアクセスできるようにするには、この動作モードを FTP サーバーのメイン モードにする必要があります。

    今度は写真で練習してみましょう。

    まず、コンピュータを IP にバインドします。私の場合は 10.0.0.100 です。


    それから設定します 標準ポート ftp

    パッシブモードで動作するためのポートを追加します


    FTP プロトコルを使用して作業する場合、クライアントとサーバーの間に 2 つの接続、つまり制御接続 (コマンドが送信される) とデータ接続 (ファイルが送信される) が確立されます。
    制御接続は同じです アクティブそして 受け身モード。 クライアントは、動的ポート (1024-65535) から FTP サーバー上のポート番号 21 への TCP 接続を開始し、「こんにちは! あなたとつながりたいです。 これが私の名前とパスワードです。」 以降のアクションは、選択されている FTP モード (アクティブまたはパッシブ) によって異なります。

    アクティブモード時クライアントが「こんにちは!」と言ったとき また、サーバーがクライアントに接続してデータ接続を確立できるように、サーバーにポート番号 (1024 ~ 65535 の動的範囲) を通知します。 FTP サーバーは、データ転送のために TCP ポート番号 20 を使用して、指定されたクライアント ポート番号に接続します。

    パッシブモードの場合、クライアントが「こんにちは!」と言うと、サーバーはデータ接続を確立するために接続できる TCP ポート番号 (ダイナミック レンジ 1024 ~ 65535) をクライアントに伝えます。

    主な違いアクティブ FTP モードとパッシブ FTP モードの間は データ接続を開く側。 アクティブ モードでは、クライアントは FTP サーバーからの接続を受け入れる必要があります。 パッシブ モードでは、クライアントが常に接続を開始します。

    基本コマンド

    ABOR - ファイル転送の中止
    CDUP - ディレクトリを上位のディレクトリに変更します。
    CWD - ディレクトリを変更します。
    DELE - ファイルを削除します (DELE ファイル名)。
    EPSV - 拡張パッシブモードに入ります。 PASVの代わりに使用されます。
    HELP - サーバーが受け付けたコマンドのリストを表示します。
    LIST — ディレクトリ内のファイルのリストを返します。 リストはデータ接続経由で送信されます。
    MDTM - ファイルの変更時刻を返します。
    MKD - ディレクトリを作成します。
    NLST — ディレクトリ内のファイルのリストを返します。 短い形式リストよりも。 リストはデータ接続経由で送信されます。
    NOOP - 空の操作
    PASV - パッシブモードに入ります。 サーバーは、データを収集するために接続する必要があるアドレスとポートを返します。 RETR、LIST などのコマンドを入力すると、転送が開始されます。
    ポート — アクティブモードに入ります。 たとえば、ポート 12、34、45、56、78、89 です。 パッシブ モードとは異なり、サーバー自体がクライアントに接続してデータを転送します。
    PWD - 現在のディレクトリを返します。
    終了 - 切断
    REIN - 接続を再初期化します
    RETR - ファイルをダウンロードします。 RETR の前には PASV または PORT コマンドを置く必要があります。
    RMD - ディレクトリの削除
    RNFR および RNTO - ファイルの名前を変更します。 RNFR - 名前を変更する内容、RNTO - 名前を変更する内容。
    SIZE — ファイルサイズを返します。
    STOR - ファイルをアップロードします。 STOR の前に PASV または PORT コマンドを置く必要があります。
    SYST - システムのタイプ (UNIX、WIN、...) を返します。
    TYPE — ファイル転送タイプを設定します (バイナリ、テキスト)
    USER — サーバーにログインするためのユーザー名

    FTP サーバー応答コードの完全なリスト

    100 要求されたアクションが開始されました。新しいコマンドを実行する前に、次の応答を待ってください。
    110コメント
    120この機能は nnn 分以内に実装されます
    125チャンネルがオープンし、データ交換が始まりました
    150ファイルのステータスは正しく、チャネルを開く準備中です
    200コマンドは正しいです
    202コマンドはサポートされていません
    211システムステータスまたはヘルプリクエストへの応答
    212カタログステータス
    213ファイルステータス
    214ヘルプ説明メッセージ
    215SYSTコマンドを使用してシステム情報とともに表示されます
    220サービスは新しいユーザーを受け入れる準備ができています。
    221 quit コマンドで正常に完了しました
    225 チャネルは形成されますが、 情報交換不在
    226チャネルを閉じ、交換は正常に完了しました
    227パッシブモード(h1,h2,h3,h4,p1,p2)に移行します。
    228 ロングパッシブモード (ロングアドレス、ポート) に移行します。
    229 拡張パッシブ モード (|||ポート|) に移行します。
    230ユーザーが認証されました、続行します
    231 ユーザーセッションが終了しました。 サービスは終了しました。
    232セッションを終了するコマンドは受け入れられ、ファイル転送が完了すると完了します。
    250リクエストは成功しました
    257「THE PATH」が誕生しました。
    331ユーザー名は正しい、パスワードが必要です
    332ログインには認証が必要です
    350要求されたファイル操作には詳細情報が必要です
    404データ リモートサーバー見つかりません
    421手順が不可能です、チャネルが閉じられています
    425オープニング 情報チャネル不可能
    426チャンネルが閉じられ、交換が中断されました
    434要求されたホストは利用できません
    450要求された機能は実装されていません。ファイルは使用できません。たとえば、ビジー状態です。
    451ローカルエラー、操作が中止されました
    452ファ​​イル書き込み中のエラー (十分なスペースがありません)
    500 構文エラー、コマンドを解釈できません (長すぎる可能性があります)
    501 構文エラー (無効なパラメータまたは引数)
    502コマンドが使用されていません(不正なタイプのMODE)
    503 コマンドシーケンスが失敗しました
    504コマンドはこのパラメータには適用できません
    530ログインに失敗しました! 認証が必要です(ログインしていません)
    532ファイルを記憶するには認証が必要です
    550要求された機能は実装されていません。ファイルが利用できません。たとえば、見つかりません。
    551 要求された操作は中止されました。 不明なページタイプです。
    552要求された操作は中止されました。 十分なメモリが割り当てられていません
    553 要求された操作は受け付けられませんでした。 ファイル名が無効です。

    アクティブ FTP モードとパッシブ FTP モードの違いを説明する前に、FTP 自体が何であり、どのように機能するかを確立する価値があります。 英語の略語 FTPを意味する ファイル転送プロトコル、ロシア語に翻訳すると、ファイル転送プロトコルを意味します。 これは、クライアント (ユーザー) とリモート サーバー間の接続を確立するように設計されています。

    FTP プロトコルは、クライアントとサーバーの間に 2 種類の接続を確立します。 そのうちの1人はこう呼ばれます 制御接続コマンドを送信することを目的としており、2 番目のコマンドは データの接続送信を目的としています さまざまなファイルサーバーに。 アクティブまたはパッシブ FTP 動作モードは、最初のタイプの接続、つまり制御タイプの接続とは関係がありません。 これら 2 つのモードの選択は、データ接続を確立するときにユーザーによって行われます。

    では、根本的な違いは何でしょうか?

    FTP プロトコルのアクティブ動作モードとパッシブ動作モードの主な違いは、クライアント/サーバー接続において誰がデータ転送のための接続を行うか、つまり、大まかに言えば、誰が誰に接続するかです。 データが転送されるポートも異なります。 アクティブな動作モードでは、クライアントはサーバーとの制御接続を確立しますが、データ転送のための接続はサーバー自体によって確立されます。 パッシブ モードでは、サーバーへのデータ接続と制御接続はクライアントによってのみ開始されます。 つまり、アクティブ モードでは、サーバーはクライアントに接続してデータを転送し、パッシブ モードでは、クライアントはサーバーに接続します。

    これらのモードをより明確に見てみましょう。

    アクティブ FTP モードとパッシブ FTP モードの違い

    FTP プロトコルのパッシブ動作モードとアクティブ動作モードが互いにどのように異なるかをビデオ形式で調べてみましょう。

    アクティブ モードとパッシブ モードの両方で、接続の確立は、クライアントが にリクエストを送信することから始まります。 まず、制御接続が確立されます。 これを行うには、次の範囲の番号を持つ一時ポートがクライアント上に作成されます。 1024 前に 65535 制御接続とデータ転送用のポートを確立します。 アクティブ モードでは、すべてが次の順序で行われます。

    1. 1024 65535 21 .
    2. 1036 ).
    3. クライアントがコマンドを送信する ポートこれは、アクティブな FTP モードの使用、IP アドレス、およびサーバーが接続するデータ接続を確立するためのポート番号 (この例ではポート) を示します。 1037 ).
    4. コマンドはサーバーによって確認されます。
    5. クライアントは、FTP を操作するためにサーバーにコマンドを発行します。
    6. サーバーはデータ接続を作成します。 これを行うには、次のリクエストを送信します。 20 番目のポートを、クライアントが 4 番目の段落で指定したポートに ( 1037 ).
    7. クライアントはリクエストに応答します。
    8. サーバーは接続を確認し、クライアントがデータを転送できるようにします。

    概略的には、これは次のように表現できます。

    パッシブ モードでは、データ接続を確立する手順が少し異なります。 アクションは次のように行われます。

    1. クライアントは一時ポートから範囲を指定して送信します。 1024 65535 サーバーのポート番号の要求 21 .
    2. サーバーはクライアントの一時ポート (この例ではポート) に応答します。 1036 ).
    3. クライアントは接続を確認します。
    4. クライアントがコマンドを送信する PASVでは、パッシブ FTP モードの使用について説明します。
    5. サーバーはパッシブ モードでの動作を確認し、その IP アドレスとポート番号を送信して、クライアントが接続するデータ接続を確立します (例では 2154 ).
    6. データポートから (例では 1037 ) クライアントは、サーバーによって発行されたポートへの接続を確立するリクエストを送信します ( 2154 ).
    7. サーバーは接続を確認します。
    8. クライアントは接続を確立します。
    9. クライアントはサーバーにコマンドを発行します(制御ポートからポートへ) 21 、例では - ポートから 1036 ポートごと 21 )、その後データ転送が可能になります。

    これを図で想像してみましょう。

    パッシブ モードはクライアントにとってより安全です。 ファイアウォールが設定されている場合は、これを使用することをお勧めします。 ファイアウォール経由でアクティブ FTP モードを使用すると、ファイアウォールがサーバーからクライアントへの接続を許可しないため、エラーが発生する可能性があります。 したがって、このようなエラーを避けるために、データ転送にはパッシブ FTP モードを使用することをお勧めします。