![パッシブモードでの VSFTP の接続数](https://rvso.com/image/623611/%E3%83%91%E3%83%83%E3%82%B7%E3%83%96%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AE%20VSFTP%20%E3%81%AE%E6%8E%A5%E7%B6%9A%E6%95%B0.png)
パッシブ モードで作業しているときに、pasv_max_port を 10100 に、pasv_min_port を 10090 に設定すると、VSFTP サーバーは同時に 10 個のクライアントしか処理できないことを意味しますか?
pasv_max_port と pasv_min_port の両方に同じポート番号を設定できますか? 可能な場合、VSFTP サーバーは同時にいくつのクライアントを処理できますか? 1 つだけですか?
答え1
簡単に言うと、私はそう言うでしょう、そしてそれはあなたがそれをそのように考えるべきだと(私の意見では)思います。
ポート範囲を制限すると、最小と最大のポート数に応じて同時クライアント接続が制限されます。これにより、異常な動作を回避できます。
しかし、実際にはそれは真実ではなく、抑制されなければなりません :-)
さらに深く、より正確に言うと:ポートの制限はデータチャネルの同時使用に影響する。
新しい接続要求には利用可能なデータ チャネルが必要であることに注意してください。
データ チャネルを使用するすべての FTP コマンドについては把握していませんが、基本的にアップロード(STOR)
、ダウンロード(RETR)
、リスト(LIST)
コマンドにはデータ チャネルが必要です。
これを説明するために、私は自分の vsftpd サーバーと次の設定を使用してラボでテスト (再現可能) を実行しました。
pasv_max_port=10100
pasv_min_port=10100
1. 最初のテスト:
- クライアント1に接続します: OK
- クライアント1がまだ接続されている間にクライアント2に接続します: OK
- クライアント1とクライアント2がまだ接続されている間にクライアント3に接続します: OK
なぜ ?
- クライアント 1 は何もせず (アイドル状態)、データ チャネルを使用していなかったため、クライアント 2 は接続できました。そのため、サーバーはポートをクライアント 2 に割り当てました。
- クライアント 1 とクライアント 2 がアイドル状態でデータ チャネルを使用していなかったため、クライアント 3 は接続できました。そのため、サーバーはポートをクライアント 3 に割り当てました。
2. 2回目のテスト:
- クライアント1に接続し、ファイルのアップロードを開始します。ファイルのアップロードが進行中です。
- クライアント1のアップロードがまだ実行されている間にクライアント2に接続しました: エラー、接続できません
- クライアント1のアップロードが完了するのを待ちます
- クライアント1のアップロードが完了すると、クライアント2に接続できるようになりました。
なぜ ?
- クライアント 1 がアップロードにデータ チャネルを使用していたため、サーバー側にクライアント 2 にサービスを提供できるポートがなくなり、クライアント 2 は接続できませんでした。
- クライアント 1 のアップロードが完了すると、サーバーはデータ チャネル ポートを解放し、クライアント 2 はそれを使用して接続できるようになりました。
3. 3回目のテスト:
- クライアント1に接続します: OK
- クライアント1がまだ接続されている間にクライアント2に接続します: OK
- クライアント1からFTPサーバーへのアップロードを開始します: OK、アップロード進行中
- クライアント 1 のアップロードがまだ実行されている間に、クライアント 2 から FTP サーバーへのアップロードを開始します: エラー: サーバーによって接続が閉じられました。転送に失敗しました。
なぜ ?
テスト 1 とテスト 2 の組み合わせ:
- クライアント 1 は何もせず (アイドル状態)、データ チャネルを使用していなかったため、クライアント 2 は接続できました。そのため、サーバーはポートをクライアント 2 に割り当てました。
- クライアント 2 がアイドル状態であるため、サーバーはアップロード用にクライアント 1 にポートを割り当てており、クライアント 1 はファイルをアップロードできます。
- データ転送ポートがすでにクライアント1によってアップロードに使用されているため、クライアント2はファイルをアップロードできません。
これで、私が最初に「奇妙な」行動について話していた理由がお分かりいただけると思います。
役に立つことを願っています!