FTP-login virker, men mappelisten hænger: hvorfor
FTP-login og mappelister bruger to forskellige forbindelser. Når en liste hænger, skal du tjekke den passive dataadresse og portintervallet, ikke adgangskoden.
Brugernavnet virker, adgangskoden virker, og klienten siger, at den er forbundet. Så venter den evigt på en mappeliste eller på den første filoverførsel, og intet i loginoplysningerne forklarer det. FTP åbner en anden forbindelse for hver liste og hver fil, og det er den anden forbindelse, der fejler. Login beviser kun, at den første samtale virker.
Udfør kontrollerne i rækkefølge. Hver enkelt udelukker et andet lag, så stop ved den første, der giver en afvigelse.
Adskil de to forbindelser først
En kontrolforbindelse bærer kommandoer og svar på serverens lytteport. En dataforbindelse bærer mappelisten eller filens indhold, og i passiv tilstand vælger serveren sit endepunkt og annoncerer det i PASV- eller EPSV-svaret. At tillade port 21 siger intet om, hvorvidt dataporten er tilgængelig, og det er præcis derfor, et login lykkes, mens hver liste udløber. WinSCP’s guide til FTP-tilstande forklarer opdelingen og dens netværkskrav.
Hvis klienten sidder bag VPN’en, krydser datastien den samme tunnel, men ikke nødvendigvis den samme politik.
Læs adressen i PASV-svaret
Kør en detaljeret klient og læs svaret i stedet for at gætte. curl -v ftp://user@host/ udskriver PASV-linjen med den adresse og port, som serveren vil have, og det er den adresse, klienten derefter forbinder til. Hvis det er en privat adresse, der ikke betyder noget på klientens side af tunnelen, går dataforbindelsen ingen steder, mens kontrolkanalen forbliver sund.
Sammenlign den adresse med den adresse, klienten faktisk nåede. Uoverensstemmelsen er svaret, og den kommer normalt fra NAT eller fra en server konfigureret med en intern adresse.
Tjek portintervallet og tunnelpolitikken
Passive servere tildeler dataporte fra et konfigureret interval, og det interval skal være tilladt gennem VPN’en og enhver firewall på ruten. En politik, der tillader 21 og intet andet, er en politik kun til login. Bekræft intervallet med den, der driver serveren, og test derefter en port derfra i stedet for at antage, at hele intervallet opfører sig ens.
Krypterede kontrolkanaler gør dette sværere, fordi en mellemboks ikke længere kan omskrive den annoncerede adresse undervejs.
Ved, hvornår EPSV eller en fallback hjælper
EPSV returnerer en port uden en separat adresse, hvilket fjerner fejlen med den forkerte adresse, når begge ender understøtter det. Nogle klienter kan også fås til at ignorere den annoncerede adresse og genbruge kontrolforbindelsens destination. Begge er legitime værktøjer målrettet en bestemt topologi, ikke en generel løsning.
Deaktiver ikke TLS bare for at lade et hjælpeværktøj inspicere sessionen. Det bytter en fungerende protokol for en brudt trusselsmodel.
Bekræft med en liste og en overførsel
Når adresse- eller portpolitikken er ændret, skal du åbne en ny session over den samme VPN-sti og liste en mappe. Overfør derefter en lille fil, fordi en liste og en overførsel kan tage forskellige kodestier på nogle servere. Tjek klientloggen for en dataforbindelse til den forventede adresse og port, og bekræft at byte er ankommet.
Hold FTP, FTPS og SFTP adskilt i hovedet, mens du gør dette. En passiv portændring er ikke en SFTP-indstilling, og rettelsen overføres ikke mellem protokoller.