Italian B4J WebSocket server

sirjo66

Well-Known Member
Licensed User
Longtime User
ciao Giovanni, mi fa piacere sapere che hai risolto, ma non devi scusarti, non preoccuparti ;)

Sergio
 

LucaMs

Expert
Licensed User
Longtime User
Poi dicono gli italiani... sono gentilissimi, gli italiani, vedi risposta sopra!

Dato che Sergio @sirjo66 è sicuramente esperto in fatto di configurazioni di router, server, IP, etc. pongo qui la mia domanda, se non vi dispiace, anziché aprire un nuovo thread; soprattutto perché non ho urgenza, anzi; stavo facendo qualcosa con FTP giusto per passare un grosso file ad un'amica e non mi funzionava DropBox (probabilmente solo per questione di cookie).

Rileggendo un tuo post precedente, Sergio, confermo che spesso le "pagine web" dei vari router, così differenti tra loro, incasinano un po' la vita.
Talmente tanto che, adesso che ho "dovuto" cambiare router, non ho ancora impostato ip fissi ai miei dispositivi né il filtro per MAC; entrambi erano impostati sul router precedente.

Problema FTP:

(non sarò chiarissimo perché le prove le ho fatte 16 ore fa e ne ho fatte talmente tante che...!)

Server FTP Filezilla
la porta scelta risulta aperta (testata tramite un sito esterno);
List tramite client Filezilla ok;
richiesta FTP tramite browser: mi viene chiesta giustamente la PW per l'utente e viene accettata.
... qui nasce il problema. Nella maggior parte dei tentativi, ricevevo "Can't open data connection"
... adesso la cosa è perfino peggiorata. Nella finestra di amministrazione di Filezilla si vedono infiniti tentativi da parte dello stesso utente (al quale infatti viene continuamente assegnato un nuovo ID), utente autenticato. Vengono eseguiti ogni volta un certo numero di comandi, che forse prima non avevo notato, ma non penso, e gli ultimi due messaggi, prima di ricominciare con l'ennesimo tentativo automatico, sono:
421 Could not create socket
disconnected

dopodiché, ci riprova, all'infinito.

Va beh, meglio postare il blocco di comandi eseguito a ripetizione (cambiato nome utente e IP):
upload_2015-10-25_19-2-38.png

Come dicevo:
1) non mi sembra che precedentemente (quando ricevevo "solo" il messaggio: "Can't open data connection") venissero eseguiti tutti quei comandi, ma potrei sbagliare
2) tutto funziona bene tramite client Filezilla (sempre con indirizzo esterno, non locale); quanto sopra, invece, tramite browser.

Appena esco dal bagno, riprovo meglio :D
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Ciao Luca,
scusa se non ti ho ancora risposto ma non sono riuscito ancora a trovare il tempo per farlo, ma conto di riuscirci questo fine settimana.

Sergio
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Eccomi qui ;)
Spieghiamo brevemente come funziona il server FTP in modalità "passive" (che dovrebbe essere la modalità scelta da Luca).
Il server FTP si mette in ascolto sulla porta 21 (che è la porta di default, chiamata "command port") e quindi bisogna aprire sul firewall del PC la porta relativa, e sul router fare un port-forwarding sulla stessa porta.
Fino a qui penso che lo hai già fatto, altrimenti non ti avrebbe funzionato proprio niente.
Quando il server FTP riceve un comando di upload/download, apre un altro canale (utilizzando quindi un altra porta) chiamata appunto "data connection".
Il server FTP comunica quale è questa porta al client, il quale quindi esegue una chiamata su questa porta verso il server FTP ed avviene lo scambio del file.
Il problema quindi è che devi aprire questa porta e configurarla anche sul router, ma il problema è che non è una porta fissa, ma cambia continuamente.
Se vai a vedere l'impostazione del server FTP filezilla dove imposti la modalità "passive" troverai che è configurato un range di porte, di solito sono parecchie per poter garantire che il server FTP trasferisca numerosi file in multitasking.

Le soluzioni sono due:
disabilitare completamente il firewall sul PC server FTP, e fare sul router un port-forwarding di tutte le porte.
Questa è la soluzione che di solito si fa su di un server che deve gestire parecchi client contemporaneamente.

Altra soluzione è quella di decidere una porta fissa che sia sempre quella (meglio ancora se ne usi tre) e aprirle sul firewall del server FTP e fare il port-forwarding sul router. Ovviamente devi anche impostarla sulla configurazione del FTP server filezilla

Spero di essere stato chiaro, altrimenti chiedi pure

Sergio
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Ciao Sergio e grazie per la risposta (dettagliata :)).

Cerca di qua, cerca di là, avevo capito che funziona così; una porta comandi, diciamo, e una dati (parlando del modo passivo).

La porta dati scelta dal Server risulta negli ultimi due byte della risposta al comando PASV (es. 151, 55, 66, 77, 200, 100): i primi 4 byte sono l'indirizzo pubblico del router, gli ultimi due rappresentano la porta dati (200 * 256 + 100 = 51300).

Malgrado questo e vari tentativi (anche con 100 porte aperte e perfino con i firewall disattivati) non sono riuscito a connettermi da browser (quindi da rete interna) mentre usando il client Filezilla sì.
Nel client Filezilla non uso il localhost (127.0.0.1), che ovviamente funziona, ma l'indirizzo pubblico del router, eppure anche così funziona.

Faccio altre provole e se scopro l'arcano vi fo sapere.


Grazie ancora, Sergio


[Ah, non uso la standard 21; da qualche parte ho trovato che non mi conviene ma non ricordo già più perché :D. Cmq, apro le "porte dati" con numeri successivi a quella "comandi" ed in effetti da fuori risulta aperta - uso il sito ping.eu per verifiche)
 

LucaMs

Expert
Licensed User
Longtime User
Beh, la cosa è perfino peggiorata; adesso non ottengo il LIST nemmeno da client Filezilla!

In questa immagine, le impostazioni di router e Filezilla (fittizie):
upload_2015-11-1_3-36-5.png


Arriva al comando PASV (con porta aperta sicuramente), vedo correttamente due connessioni nella finestra di amministrazione di Filezilla (la seconda non loggata)
e infine il comando MLSD, dopo il quale: "425 Can't open data connection" !
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Eh si, ho visto su internet che anche altri hanno le stesso problema, e mi viene da pensare che sia FileZilla Server che non supporta connessioni tramite browser.

Un unica cosa che ho visto errata (e che potrebbe essere il problema che non ti funziona più):
hai definito la porta 50000 come "command port" e le porte da 50001 fino a 50009 come "data port", ma nelle impostazioni del Filezilla server hai impostato da 50000 fino a 50009

La porta 50000 in questo caso si sovrappone alla "command port"

Sergio
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Ho installato FileZilla Server su di un mio PC portatile e dal PC fisso ho provato ad accedervi tramite browser FireFox e anche Internet Explorer e funziona perfettamente !!

Eccoti in allegato lo screenshot

(ovviamente sono in rete locale, ma se funziona così non dovrei avere problemi anche da remoto)

Sergio
 

Attachments

  • Immagine.png
    Immagine.png
    112.9 KB · Views: 227

LucaMs

Expert
Licensed User
Longtime User
Speravo che l'immagine contenesse le tue impostazioni, non il LIST su browser :p

Devo dire che la maggior parte di tentativi li ho fatti dallo stesso pc contenente il server (pochi tramite altro dispositivo, tablet+browser, perché non ho trovato Filezilla Client per Android).

hai definito la porta 50000 come "command port" e le porte da 50001 fino a 50009 come "data port", ma nelle impostazioni del Filezilla server hai impostato da 50000 fino a 50009

La porta 50000 in questo caso si sovrappone alla "command port"

(sicuramente hai digitato per errore: porte da 50001 fino a 50009 come "data port", perché questo è quanto andrebbe fatto, secondo te e non si sovrapporrebbe la porta 50000) comunque, nella immagine che ho postato:
upload_2015-11-1_3-36-5-png.38591


External start/end port (50000/50009) sono le porte aperte sul router che "puntano" alla 50000. Suppongo che questa impostazione sia corretta: non potrei impostare 50001/50009 e 50000 come internal port, altrimenti questa risulterebbe chiusa.

Nelle impostazioni del server, ho in ascolto solo sulla 50000 (connection settings) e sia che io metta 50000/50009 sia 50001/50009 su "Use custom port range" nel "Passive mode settings", nada funziona, né da browser né da client Filezilla.


Grazie mille, Sergio
 

sirjo66

Well-Known Member
Licensed User
Longtime User
sicuramente hai digitato per errore: porte da 50001 fino a 50009 come "data port"

No no, ho proprio digitato giusto, ed è quello che volevo farti notare, e cioè che sulla prima immagine della configurazione hai impostato come "command port" la porta 50000, e poi l'hai utilizzata anche come "data port" sulla seconda configurazione, e quindi FileZilla si trova ad utilizzare la porta 50000 sia come "command port" sia come "data port" e questo potrebbe portare ad un errore.

Leggiti anche un mio post precedente dove spiegavo che alcuni provider di linea ADSL tagliano le porte alte, e sarebbe meglio usare le porte intorno al 5000-6000.

Comunque nel mio FileZilla Server ho impostato come porta di ascolto la numero 21 (cioè su General settings), mentre come data port ho impostato dalla 6200 fino alla 6202 (cioè in totale tre porte).
Non so se il router che hai impostato tu possa avere una configurazione multipla di porte, ma per sicurezza ti consiglio di configurare sul router porta per porta, quando vedi che funziona puoi provare a fare una configurazione multipla.

Sergio
 

sirjo66

Well-Known Member
Licensed User
Longtime User
No, non lo sto testando "da fuori", come ho scritto nel mio precedente post, lo sto facendo da rete locale.
Tu da rete locale ci riesci ???
 

LucaMs

Expert
Licensed User
Longtime User
No, adesso no, prima (giorni fa) sì.

Cmq, fammi capire... sul server metti quelle porte in ascolto (6200-6202) ma sul router come fai il mapping (avevo provato anche a farne uno per porta, cmq)?

Sempre verso la 21? Ma a quel punto dovrebbe usare un'unica porta, la 21, appunto, e quindi non funzionare, no?
 

LucaMs

Expert
Licensed User
Longtime User
Giostrando col port mapping, se tento di impostare come porte esterne la 21, compare il messaggio (dalla pagina web del router):
Notice:This portmapping will modify the ftp server port number 21. If you want to access the ftp server of the router from WAN, make sure using the temporary port number 2121; the ftp server port will be reset to 21 after removing this policy. Are you sure to add this policy?

Eppure in qualche modo devo aprirla, la 21.
Ma, a parte questo, anche volendo usare una porta diversa dalla 21, finora non c'è modo di farlo funzionare.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Fai questa prova: metti in ascolto il FileZilla sulla porta 2121, e per il passive mode dalla 6200 alla 6202

Poi sul router fai 4 port-forwarding,
una per la porta 2121, le altre tre dalla 6200 alla 6202, e ogni port-forwarding deve andare a finire sulla propria porta

Ma prima di tutto devi farlo funzionare da rete locale, perchè sennò è ovvio che non ti funzioni nemmeno da fuori

Sergio
 
Top