Verbindungen Anzahl von VSFTP im passiven Modus

Verbindungen Anzahl von VSFTP im passiven Modus

Wenn wir im passiven Modus arbeiten und pasv_max_port auf 10100 und pasv_min_port auf 10090 setzen, bedeutet das, dass der VSFTP-Server nur 10 Clients gleichzeitig bedienen kann?

Können wir für pasv_max_port und pasv_min_port die gleiche Portnummer festlegen? Wenn das möglich ist, wie viele Clients kann der VSFTP-Server gleichzeitig verarbeiten? Nur einen?

Antwort1

Vereinfachen, ich würde sagen, ja, und so sollten Sie es (meiner Meinung nach) auch betrachten.

Durch die Begrenzung des Portbereichs werden gleichzeitige Clientverbindungen entsprechend der Anzahl der Ports begrenzt, die Sie zwischen minimal und maximal haben. Auf diese Weise vermeiden Sie seltsames Verhalten.

Aber das stimmt tatsächlich nicht und muss moderiert werden :-)

Um tiefer zu gehen und genauer zu sein:Die Begrenzung der Ports wirkt sich auf die gleichzeitige Nutzung des Datenkanals aus.

Beachten Sie, dass für eine neue Verbindungsanfrage ein verfügbarer Datenkanal erforderlich ist.

Ich kenne nicht alle FTP-Befehle, die einen Datenkanal verwenden, aber grundsätzlich benötigen Upload- (STOR), Download- (RETR)und (LIST)Listenbefehle einen Datenkanal.


Um dies zu veranschaulichen, habe ich gerade einen Labortest (den Sie reproduzieren können) mit meinem vsftpd-Server und diesen Einstellungen durchgeführt:

pasv_max_port=10100
pasv_min_port=10100

1. Erster Test:

  • Ich verbinde mich mit Client1: ok
  • Ich verbinde mich mit Client2, während Client1 noch verbunden ist: ok
  • Ich verbinde mich mit Client3, während Client1 und Client2 noch verbunden sind: ok

Warum ?

  • Client2 konnte eine Verbindung herstellen, da Client1 nichts tat (im Leerlauf war) und den Datenkanal nicht verwendete. Daher hat der Server den Port Client2 zugewiesen.
  • Client3 konnte eine Verbindung herstellen, da Client1 und Client2 inaktiv waren und den Datenkanal nicht verwendeten. Daher hat der Server den Port Client3 zugewiesen.

2. Zweiter Test:

  • Ich verbinde mich mit Client1 und beginne mit dem Hochladen einer Datei: ok, Datei-Upload läuft
  • Ich verbinde mich mit Client2, während der Upload auf Client1 noch läuft: FEHLER, Verbindung kann nicht hergestellt werden
  • Ich warte, bis der Upload für Client1 abgeschlossen ist
  • Nachdem der Upload zu Client1 abgeschlossen war, konnte ich eine Verbindung mit Client2 herstellen.

Warum ?

  • Da Client1 für seinen Upload einen Datenkanal verwendete, konnte Client2 keine Verbindung herstellen, da auf der Serverseite kein Port mehr verfügbar war.
  • Nachdem der Upload für Client1 abgeschlossen war, gab der Server den Datenkanal-Port frei und Client2 konnte ihn für die Verbindung verwenden.

3. Dritter Test:

  • Ich verbinde mich mit Client1: ok
  • Ich verbinde mich mit Client2, während Client1 noch verbunden ist: ok
  • Ich starte einen Upload zum FTP-Server von Client1: ok, Upload läuft
  • Ich starte einen Upload von Client2 zum FTP-Server, während der Upload von Client1 noch läuft: FEHLER, Verbindung vom Server geschlossen. Übertragung fehlgeschlagen.

Warum ?

Eine Mischung aus Test 1 und Test 2:

  • Client2 konnte eine Verbindung herstellen, da Client1 nichts tat (im Leerlauf war) und den Datenkanal nicht verwendete. Daher hat der Server den Port Client2 zugewiesen.
  • Client1 kann eine Datei hochladen, da Client2 im Leerlauf ist und der Server daher Client1 den Port für den Upload zugewiesen hat.
  • Client2 kann keine Datei hochladen, da der Datenübertragungsport bereits von Client1 für den Upload verwendet wird.

Jetzt können Sie verstehen, warum ich am Anfang von „seltsamem“ Verhalten gesprochen habe.

Hoffe, es wird helfen!

verwandte Informationen