Filöverföring via FTP sker i aktivt eller passivt läge.
Bakom en brandvägg som använder NAT fungerar normalt
bara passivt läge. Varför då?
Protokollet FTP är helt baserat på TCP, UDP används inte
för FTP. FTP använder normalt två portar; en kontrollport
och en dataport. Dataporten är vanligtvis porten "under"
kontrollporten, d v s kontrollportens portnummer - 1.
Standard är port 21 för kontroll och 20 för data.
Aktiv FTP
I aktivt läge (active mode) ansluter klienten från en
opriviligerad port (port 1024 eller högre) till serverns
port 21. Därefter börjar klienten lyssna på en annan
oprivilgerad port och skickar information till servern
om vilken port som skall använas. Servern ansluter därefter
från port 20 (dataporten) till den port hos klienten
som angivts och skickar begärd data.
Passiv FTP
I passvit läge (passive mode [PASV]) initerar klienten
både kontroll- och dataanslutningen; vilket löser många
problem med brandväggar. (Brandväggen kan
tillåta trafik som initieras inifrån det interna nätet - men
spärra trafik initierad utifrån.)
När klienten ansluter till servern i passivt läge
upprättas kontrollförbindelsen som vanligt. Men för
dataförbindelsen begär klienten att servern ska öppna
en opriviligerad port som klienten sedan kan ansluta till.
Servern väntar passivt på klienten, därav benämningen.
NAT
NAT är en vanlig teknik (används i de flesta "bredbandsroutrar")
för att dela på en internetanslutning och därmed en IP för
flera datorer. NAT innebär att
adresser i det interna nätverket översätts till adresser
i det publika (Internet). Tekniken bygger på att olika
portar knyts ihop med interna adresser. En sådan lösning
klarar inte aktiv FTP eftersom servern ansluter till en
port som inte kopplats ihop med en intern adress.
Brandväggar
Även brandväggskonfigurationen blir enklare med passiv FTP.
Det räcker att tillåta all trafik som initieras från det
egna nätet.
Detaljerad beskrivning
Vill du veta mer finns en detaljerad beskrivning
av aktiv och passiv ftp i artikeln nedan.
Artikeln är på engelska.
Active FTP
vs. Passive FTP, a Definitive Explanation