una spiegazione chiara e tecnica per quanto riguarda il multiplo problema con sessioni FTP simultanee quando si blocca la porta dati su una sola porta è ciò che mi interessa di più approfondire. Quando può funzionare, quando non funziona, perché potrebbe non essere raccomandato, ecc.
Sarà un'ipotesi folle, dato che non l'ho provato, dovresti provarlo tu stesso e vedere se ci sono altri problemi che potrei aver perso.
Suppongo che potresti limitare l'intervallo di porte passive a una singola porta . In effetti, in questa domanda puoi vedere che in pratica vengono utilizzati piccoli intervalli di porte . Teoricamente, per supportare più connessioni simultanee sono necessari solo i 4 valori: IP locale, porta locale, IP remoto, porta remota per essere univoci. Ecco come discernere tra connessioni diverse.
Se si blocca la porta sul server su un singolo valore, l'unica variabile rimasta è la porta utilizzata dal client. Questo non è un problema, purché il client abbia un pool abbastanza ampio di porte effimere gratuite tra cui scegliere. A meno che non stia facendo un NAT pesante, non devi preoccuparti di questo. Ora, tieni presente che questa sarà roba puramente teorica : se hai utilizzato più porte sul tuo server, potresti moltiplicare il numero di ipotetiche connessioni simultanee abilitandonumber of ports in range
connessioni per una porta lato client. Ma in pratica non accadrà, poiché dubito che ci sia un'implementazione di un client FTP che lo supporti (perché non ha molto senso). Inoltre, se il cliente deve condividere le sue porte effimere in questo modo e non può semplicemente aprirne una nuova, allora ha problemi molto più gravi da affrontare. Quindi, da questo punto di vista, dovresti essere totalmente sicuro usando una singola porta.
Pensiamo perché una singola porta potrebbe non essere sufficiente .
Prima di tutto, potrei trovare una situazione in cui un'implementazione del server FTP veramente errata utilizza solo il numero di porta locale come modo per identificare il trasferimento dei dati del client. Ancora una volta, non credo che nessun FTPd decente lo farebbe.
Il vero problema ( sì, puoi ignorare tutto quanto sopra come una grave digressione ;-)) è che l'intervallo di porte passive è in un intervallo non privilegiato .
Ciò significa che il numero di porta selezionato non è riservato di per sé , e in effetti qualsiasi processo utente (non ha bisogno dei privilegi di root ) può catturarlo prima che il server FTP lo faccia. Se hai un abbondante pool di porte tra cui scegliere, ne prendi semplicemente uno libero a caso. Se sei obbligato a utilizzare l'unico ed è già utilizzato, non sarai in grado di gestire correttamente i trasferimenti.
Scusa, se la risposta sembra un po 'troppo speculativa. Ad essere sincero, ho cercato di trovare un motivo per cui non dovresti usare una singola porta e, a parte l'ultimo, non ho potuto pensare a nessuna prova concreta contro di essa. Tuttavia, una domanda interessante e stimolante che poni.