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 最適化のケーススタディ

推薦する

VMware vSphere 6.5 インストール チュートリアル (画像とテキスト)

vmware vSphere 6.5 は vSphere ソフトウェアのクラシック バージョンであ...

純粋な CSS カスタム複数行省略記号の問題 (原理から実装まで)

テキストオーバーフローを表示するにはどうすればいいですか? どのようなニーズがありますか?単一行です...

nginx でのリクエストのカウント追跡の簡単な分析

まずは適用方法を説明します。nginxモジュールにはjtxyとjtcmdの2つがあります。 http...

MySQL ログの設定と表示方法

MySQL には次のログがあります。エラーログ: -log-errクエリログ: -logスロークエリ...

フレックスレイアウトの改行スペースでの align-content の使用

1. この記事で実装した効果図は以下のとおりです。レイアウトの右側に Flex レイアウトを使用し、...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...

Linux で測位バックグラウンド サービスが時々クラッシュする問題の解決方法

問題の説明最近のバックグラウンドサービスでは、特定の命令の要求データをディスクに保存する新しい機能が...

Windows システムで MySQL が起動しない場合の一般的な解決策

MySQL 起動エラーWindows 10 に MySQL をインストールする前は、net star...

マインスイーパゲームを実装するための jQuery プラグイン (3)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する方法に関する3番目の記事...

Spring環境を構成するためのDocker-composeの手順

最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

Element-UIの10の驚くべきトリックのまとめ

目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...