vsftpdでpasv_min_port = pasv_max_portを設定すると、どのような影響がありますか?

vsftpdでpasv_min_port = pasv_max_portを設定すると、どのような影響がありますか?

FTPサーバーをインストールしています。VSFTPDこれに従ってください地図時間、次のように要約できます。

apt-get install vsftpd次に、構成ファイルで合計行/etc/vsftpd.confのコメントを外し、最後に以下を追加します。local_umask=022write_enable=YES

lock_upload_files=NO 
chroot_local_user=YES
force_dot_files=YES

以下を変更します(8745を希望のポートに自由に変更してください)。

pasv_enable=YES 
pasv_min_port=8745
pasv_max_port=8745

pasv_min_portvsftpdとpasv_max_port同じポートに設定するとどうなりますか?たとえば、パフォーマンスにどのような影響を与えますか?

答え1

TL;博士:その影響は、FTPサーバーが一度に1つのトランスポートのみをサポートすることです。これは、同時クライアントにサービスを提供するように設計されたFTPサーバーに対する絶対的な禁止事項です。おそらく一人だけを使用するプライベートFTPサーバーには問題ありません。一度、その人が複数の同時送信を許可しない限り。


FTPプロトコル(使用されているサーバーソフトウェアに関係なくvsftpd)はデュアルチャネル方式で動作します。

最初のチャネルはよく知られているポート21にバインドされており、「制御チャネル」として機能します。このチャネルは、サーバーに要求を送信し、サーバーから応答を受信するために使用されます。要求は、「このディレクトリのリスト」、「このファイルの送信」、「サポートする機能を教えてください」などのコマンドの種類です。レスポンスは、状態条件と解析しやすい短いテキストレスポンスに関連するタイプです。

2番目のチャネルは、送信または受信したファイルを構成する実際のデータストリーム、またはディレクトリリストを構成するデータストリームなどの一括送信に使用されます。最も一般的な使用シナリオでは、このような2番目のチャンネルを設定します。オンデマンドそして続ける単一つまり、送信された個々のファイル(またはディレクトリのリスト)は、クライアントとサーバー間で最初から新しいチャネル(TCP接続)を確立します。最初のチャンネル(ポート21のチャンネル)は制御目的で常に開いています。

FTPパッシブモードでは、サーバーはファイル転送/ディレクトリリストを要求するクライアントから一時的な2番目のチャネル(TCP接続)を待っている間にリッスンするポートを選択するためにパッシブポートを使用します。 2番目のチャネルには認証/識別や任意の種類の「Cookie」がないため、サーバーは選択したポートとポート間の接続のみを確立できます。特定要求された操作です。それは:2番目のチャンネルは次のものと密接に接続されています。精密ファイルまたは特定要求されたディレクトリ特定顧客。

したがって、サーバーに2番目のチャネルを選択できるポートのみを提供すると、サーバーは一度に1つの「一括送信」のみをサポートできます。現在、ポート21の「制御チャネル」にどれだけのクライアントが接続されているかは重要ではない。特定の瞬間にクライアントの1つだけがファイルを転送したりディレクトリをリストしたりする一方、同時に転送を要求する他のクライアントは、代わりに一時的なエラーを通知する応答をサーバーから受信しました。

つまり、1つのパッシブポートのみを使用することは、本質的に同じFTPサーバーの使用を必要とするFTP転送の大きなミューテックスと同じです。

関連情報