Bonjour à tous,
J'héberge un serveur FTP FileZilla (mode passif) sur un serveur WIN 2012 R2 hébergé dans MS Azure.
Les transferts FTP fonctionnent généralement bien - Plusieurs téléchargements et récupérations FTP s'exécutent quotidiennement.
J'ai ouvert une large gamme relative de ports (points de terminaison) sur le portail / côté Azure pour permettre le mode passif.
De façon sporadique (en moyenne une fois tous les 2 jours), je constate des problèmes de transfert FTP comme les suivants:
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file1
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file2
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file3
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071050
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> CWD dev_updates/Infrastructure/folder
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 250 CWD successful. "dev_updates/Infrastructure/folder" is current directory.
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> PASV
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 227 Entering Passive Mode (104,40,Y,X,234,235)
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 426 Connection closed; aborted transfer of ""
8/8/2016 9:10:01 AM - USER_FILEZILLA (62.154.Y.X)> disconnected.
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> Connected on port 21, sending welcome message...
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-FileZilla Server 0.9.57 beta
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220 Please visit https://filezilla-project.org/
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> USER USER_FILEZILLA
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 331 Password required for
Comme mentionné, il existe plusieurs transferts FTP quotidiens (automatisés) et balayant la plage de 140+ ports affectés au serveur FTP FileZilla (agissant en mode passif).
J'ai une capture Wireshark en cours d'exécution sur la machine virtuelle hébergée dans Azure; Je peux voir à partir des captures de Wireshark que les événements "426 connexion fermée" sont en fait mis en correspondance par un RST provenant de la machine virtuelle dans Azure et renvoyés au client qui a émis la commande PASV (c'est-à-dire dans l'exemple ci-dessus, le serveur FTP répond à la commande PASV client avec le port: 234 235 -> 60139; le client tente d'ouvrir un canal de données vers le port 60139 afin de démarrer le transfert -> le serveur FTP répond immédiatement (dans MS selon la capture Wireshark) en émettant un RST au client).
J'ai pensé à un problème d'allocation de ports éphémères côté serveur FTP -> j'ai donc réduit la plage de ports éphémères du système d'exploitation dynamique autorisée pour ne pas chevaucher la plage de ports passifs FTP - en utilisant le
netsh int ipv4 set dynamicport tcp start=49152 num=10000
aussi, j'ai explicitement ajouté la réservation de plage de ports à la pile netsh via la commande
netsh int ip add excludeportrange protocol=tcp startport=60000 numberofports=141 store=persistent
Pourtant, le problème se produit encore occasionnellement.
J'ai lu les discussions techniques approfondies sur ce site Web ainsi que sur la session technet MS Azure sur la façon dont Azure surveille l'état des points de terminaison (lorsqu'il fait partie d'un ensemble LB), mais cela ne s'applique pas dans mon cas en tant que transferts passifs FTP (récupération et téléchargements) sur des ports aléatoires dans la plage de ports passifs FTP réservés fonctionnent généralement bien.
Je peux fournir des détails supplémentaires si nécessaire - en attendant, je serais reconnaissant pour des suggestions supplémentaires dans le dépannage / investigations côté serveur et client (à peu près sûr que le problème n'est pas lié au réseau ou à la configuration réseau).
Je voudrais également demander des suggestions / conseils supplémentaires de dépannage / enquête sur la façon de déboguer Winsock pour d'éventuels problèmes de disponibilité des sockets côté serveur.
426
erreur d'avortement suivait toujours quelques secondes derrière une autre session, obtenant une 550
erreur d'autorisation refusée. Je soupçonne que c'est un bogue avec FileZilla, mais pour nous, le correctif consistait à empêcher le 550 (dans notre cas, un système de test tentait d'accéder au dossier de test, mais en utilisant des informations d'identification de production; nous avons donc simplement dû corriger les informations d'identification de ce système) .