FTP、FTPS、SFTPの違いについて簡単に説明します

FTP、FTPS、SFTPの違いについて簡単に説明します

ネットワークディスクでもクラウドストレージでも、アップロードは非常に簡単な操作です。便利で使いやすいアップロードおよび整理ツールで使用される FTP プロトコルの意味と、複雑なモード間の違いは何ですか?

Ergouzi は最近、写真共有 Web サイトを構築しました。毎日多くの人が彼の Web サイトに多くの写真をアップロードしています。これらの写真は内部ロジックを通じて Youpai クラウド ストレージにも同期されるため、非常に便利です。

しかし、すぐに問題が発生しました。ユーザーの写真管理計画が当初はうまく行われていなかったため、ユーザーがアップロードする写真が増えるにつれて、クラウドストレージの内容はますます混乱し、エルゴウジさんはそれを見て非常に不快に感じました。そこで、エルグージは今日の休息を利用して、いくつかの調整を行うことに決めた。

Ergouzi は Yapai Cloud Console を開いて上下に検索しましたが、対応するファイルを対応するディレクトリに移動する機能は見つかりませんでした。 Upyun カスタマー サービスに助けを求めたところ、カスタマー サービス担当の Weiwei 氏は、FTP ツールを使用してクラウド ストレージ ファイルを管理できることを伝えました。また、Ergouzi 氏に詳細なヘルプ ドキュメント (Upyun クラウド ストレージに接続するための FTP ツールのドキュメント [https://help.upyun.com/knowledge-base/developer_tools/]) を提供しました。

Ergouzi は最終的に FTP ツールを使用してクラウド ストレージに接続しました。いくつかの操作の後、Ergouzi は写真をきれいに整理することに成功しました。強迫性障害の人々を満足させ、慰めてくれるこのストレージ インターフェイス、そしてこの効果を生み出すことができる FTP ツールを見て、Er Gouzi は満足してうなずき、FTP を徹底的に理解し、FTP に他の便利な機能があるかどうかを調べることにしました。

FTP、FTPS、SFTP の概要

FTP

関連する機能を調べる前に、Ergouzi はクライアントに FTP、FTPS、SFTP という 3 つの異なるプロトコルがあることを発見しました。これらが何であるかを理解するために、Ergouzi は万能百科事典を開きました。

まず、FTP とは何かを理解しましょう。Wikipedia には次のように書かれています: FTP、つまりファイル転送プロトコル (英語: File Transfer Protocol の略) は、コンピュータ ネットワーク上のクライアントとサーバー間でファイルを転送するために使用されるアプリケーション層プロトコルです。完全な FTP は、FTP サーバーと FTP クライアントで構成されます。クライアントは、FTP プロトコルを介してローカル ファイルをサーバーにアップロードしたり、サーバーからローカル コンピューターにファイルをダウンロードしたりできます。これは現在使用されている最も古いファイル転送プロトコルの 1 つであり、ファイルを移動する非常に便利な方法です。

FTPの仕組み

FTP 接続では、ネットワーク上で通信を確立するために FTP サーバーとクライアントの 2 つの当事者が必要です。 FTP 接続を確立するときには、2 つの異なる通信チャネルがあります。 1 つはコマンド チャネルと呼ばれ、その役割はコマンドの発行と応答です。もう 1 つは、クライアントとサーバー間のデータ交換に使用されるデータ チャネルです。

FTP を使用してファイルを転送する場合、ユーザーは FTP サーバーに資格情報を提供して、ファイルを転送する許可を取得する必要があります。もちろん、一部のパブリック FTP サーバーでは、ファイルにアクセスするために認証情報を必要としない場合もありますが、データ転送のセキュリティは保証されません。パブリック ネットワーク上で暗号化されていないデータを送信することは非常に危険です。したがって、転送データのセキュリティを保護するために、FTP から派生した 2 つのプロトコル、FTPS と SFTP があります。

FTPS

次に、Ergouzi 氏は調査を行い、FPTS には FTPS Implicit SSL と FTPS Explicit SSL の 2 つのモードがあり、どちらも SSL で暗号化されていることを発見しました。では、この2つの違いは何でしょうか?

  • FTPS 暗黙的 SSL: このモードは通常、ポート 990 で実行されます。このモードでは、すべてのデータ交換にはクライアントとサーバーの間で SSL セッションを確立する必要があり、サーバーは SSL を使用しない接続試行を拒否します。

  • FTPS 明示的 SSL: サーバーは明示的 SSL の下で FTP セッションと FTPS セッションの両方をサポートできます。セッションを開始する前に、クライアントは FTP サーバーとの暗号化されていない接続を確立し、AUTH TLS または AUTH SSL コマンドを送信して、ユーザー資格情報を送信する前にコマンド チャネルを SSL 暗号化チャネルに切り替えるようにサーバーに要求する必要があります。チャネルが正常に確立されると、ユーザー資格情報が FTP サーバーに送信され、セッション中のすべてのコマンドが SSL チャネルを介して自動的に暗号化されるようになります。

簡単に要約させてください。暗黙モードを有効にすると、デフォルトの FTP ポートが TCP/990 に変更され、サーバーは自動的に安全な接続を確立し、クライアントも安全な接続モードをサポートすること、つまり接続に SSL を使用することを要求します。明示モードを有効にすると、接続方法とデフォルト ポートは FTP と同じですが、データを正常に送信する前に、AUTH SSL/TLS タイプのコマンドを使用してのみ安全な接続をアクティブにすることができます。

FTPサーバー

最後に、SFTP について見てみましょう。SFTP は Secure File Transfer Protocol の略で、セキュア ファイル転送プロトコルとも呼ばれます。

FTPS が FTP プロトコルに SSL レイヤーを追加するのに対し、SFTP はネットワーク プロトコル SSH (Secure Shell) に基づくプロトコルであり、上記の FTP とはまったく異なります。 SFTP では、コマンド チャネルとデータ チャネルが別々に使用されません。代わりに、データとコマンドの両方が、特別にフォーマットされたパケットで単一の接続を介して転送されます。

SFTP は接続を認証する 2 つの方法を提供します。

  • FTP と同様に、接続時にユーザー ID とパスワードを確認するだけです。ただし、FTP とは異なり、これらの資格情報は暗号化されており、これが SFTP の主なセキュリティ上の利点です。

  • パスワードに加えて、SSH キーを使用して SFTP プロトコル経由で認証および接続することもできます。

これらのプロトコルを理解した後、Ergouzi 氏は FTP クライアント ツールの使用が簡単になったことに気付きました。特定の設定を理解していないことを心配することなく、必要に応じてプロトコルと暗号化方式を変更できるようになりました。

しかし、新たな疑問が生じます。Ergouzi は、ここでの送信設定の送信モードがアクティブとパッシブに分かれていることに気づきました。これは何を意味するのでしょうか?わからないことは質問して、百度やグーグルを開いて…

FTPソフトウェアのアクティブモードとパッシブモードの違い

アクティブモード

通常、FTP のデフォルト モードはアクティブ モード (ポート モードとも呼ばれます) です。

これは 2 つのステップで機能します。

  • まず、クライアントのランダム ポートが、サーバーの FTP ポート 21 とのコマンド チャネルを確立します。クライアントは、サーバーがクライアント ポートの 1 つに接続してデータ チャネルを確立することを指定する PORT コマンドを送信します。

  • 次に、サーバーはポート 20 からデータ チャネルに指定されたクライアント ポートに接続します。接続が確立されると、これらのクライアント ポートとサーバー ポートを介してファイル転送が可能になります。

パッシブモード

転送モードの列では、パッシブ転送モードに手動で調整することもできます。このモードでは、クライアントがファイルを転送するときに、最初にランダム ポート A を介してサーバーのポート 21 に接続し、PASV コマンドを発行してコマンド チャネルを確立し、サーバーにこれがパッシブ モード接続であることを通知します。次に、サーバーはデータ転送用にランダムなポートを開き、クライアントはコマンドを発行したポートとは異なるランダムなポート B を介してデータ チャネルを確立し、ファイル転送を実行します。

パッシブ モードとアクティブ モードの違いは、クライアントがデータ接続を開始することです。アクティブ モードでは、クライアントがコマンド チャネルで接続を確立した後、サーバーはクライアントとのデータ接続を開始します。パッシブ モードでは、コマンド チャネルが確立された後、クライアントはサーバーとのデータ接続を開始します。

この違いにより、両方の長所と短所を導き出すことができます。たとえば、アクティブ モードは、"in" ポート 21 と "out" ポート 20 を開くだけでよいため、FTP サーバーの管理に役立ちます。ただし、サーバーがクライアントに接続するポートはランダムであるため、クライアントがファイアウォールをトリガーしたり、ファイアウォールによって直接ブロックされたりする可能性があります。逆に、パッシブ モードはクライアントの管理に役立ちます。

一見シンプルな収納ツールに、実はこんなにも多くの分類と違いがあるとは思いませんでした。さまざまなモードと方法で、さまざまなニーズに対応できます。今後このツールを使用するときに、関連する知識を少し学ぶと、ツールをより便利で快適に使用できるようです~

<<:  Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

>>:  MySQL 最適化のケーススタディ

推薦する

Mysql データベースの高度なビュー、トランザクション、インデックス、自己接続、ユーザー管理の例の分析の使用

この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データ...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

Docker を使用して ELK 環境を迅速にデプロイする方法の詳細な説明 (最新バージョン 5.5.1)

Linux サーバーに Docker をインストールした後、関連する公式 Docker イメージを...

表内のコンテンツオーバーフローのレイアウト方法について

コンテンツオーバーフローとは何ですか?実際、テキストが大量にある場合、コンテンツ領域がそれだけの長さ...

Vue+Element UI でサマリーポップアップウィンドウを実装するプロセス全体

シナリオ: 検査文書には n 個の検査詳細があり、検査詳細には n 個の検査項目があります。実装効果...

Mysql が CPU を過剰に占有する場合の最適化方法 (必読)

Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...

Tomcat でのサーブレットの作成と実装に関する深い理解

1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...

マークアップ言語 - 簡略化されたタグ

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

js は複数の画像を zip にパッケージ化します

目次1. ファイルをインポートする2. HTMLページ3. メインコード4. 画像をbase64に変...

CSSスクロールバースタイル設定の実装

Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

6つのレイアウトでのFrameLayoutの使用

序文前回はLinearLayoutについて説明しました。今回はFrameLayoutの使い方を説明し...

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Linuxで相対パスを表現する方法

たとえば、現在のパスが /var/log で、/usr ディレクトリに移動する場合は、次のコマンドを...

ページネーションの例とベストプラクティス

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...