15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
09.10.2024

Cum să încarci fișiere cu FTP: Un ghid tehnic complet

File Transfer Protocol (FTP) este un protocol de rețea care funcționează pe un model client-server și permite transferul bidirecțional de fișiere între o mașină locală și un host la distanță prin TCP/IP. Utilizează două canale separate — un canal de control (portul 21) pentru comenzi și un canal de date (portul 20 sau un port efemer negociat) pentru conținutul efectiv al fișierelor, ceea ce reprezintă un detaliu arhitectural fundamental care explică majoritatea problemelor legate de firewall și modul pasiv întâlnite de practicieni.

Pentru oricine administrează un server web, implementează cod de aplicație sau gestionează un mediu de VPS Hosting, stăpânirea FTP și a succesorilor săi securizați este esențială. Acest ghid acoperă întregul flux de lucru: selectarea protocolului, configurarea clientului, navigarea în directoare, transferuri în lot, gestionarea permisiunilor și depanarea la nivel de producție — inclusiv cazuri limită pe care tutorialele generice le omit.

Înțelegerea Arhitecturii FTP și a Variantelor de Protocol

Înainte de a utiliza un client, înțelegerea variantei de protocol pe care o folosiți efectiv previne ore de depanare ulterioară.

Modul Activ vs. Modul Pasiv

Designul cu două canale al FTP creează o diviziune comportamentală critică:

  • Modul activ: Serverul inițiază conexiunea de date înapoi către client pe un port specificat de client. Acest lucru eșuează aproape întotdeauna prin routere NAT sau firewall-uri stricte, deoarece conexiunea de intrare de la server este blocată.
  • Modul pasiv (PASV): Clientul inițiază ambele conexiuni. Serverul deschide un port înalt aleatoriu și îi spune clientului să se conecteze la acesta. Acesta este comportamentul implicit corect pentru aproape orice implementare modernă.

Majoritatea eșecurilor de conexiune în producție provin din utilizarea modului activ față de un server protejat de firewall, sau un server al cărui interval de porturi pasive nu este deschis în propriile reguli de firewall.

Tabel de Comparație a Protocoalelor

CaracteristicăFTPFTPS (FTP peste TLS)SFTP (Transfer de Fișiere SSH)SCP
CriptareNiciunaTLS/SSLSSHSSH
Portul canalului de control2121 (explicit) / 990 (implicit)2222
Canal de dateSeparat (20/efemer)Separat (criptat TLS)Canal unic multiplexatCanal unic
Compatibilitate cu firewallSlabăSlabăExcelentăExcelentă
Reluare transferuriDa (comanda REST)DaDaNu
Listare directoareDaDaDaNu
Certificat necesarNuDa (minim server-side)Nu (cheie sau parolă)Nu
Recomandat pentru producțieNuSituaționalDaDa (copiere în masă)

Concluzia practică: Utilizați SFTP în mod implicit. Utilizați FTPS doar când un sistem legacy îl solicită explicit. Evitați complet FTP simplu pe orice server cu acces la internet — credențialele și conținutul fișierelor circulă în text clar și pot fi interceptate cu ușurință.

Cerințe Preliminare și Colectarea Credențialelor

Înainte de a deschide orice client, colectați următoarele informații de la furnizorul de hosting sau administratorul serverului:

  • Hostname sau adresă IP — ex., ftp.yourdomain.com sau 203.0.113.45
  • Protocol — FTP, FTPS (explicit sau implicit), sau SFTP
  • Port — 21 pentru FTP/FTPS-explicit, 990 pentru FTPS-implicit, 22 pentru SFTP
  • Nume de utilizator și parolă — sau o cheie privată SSH pentru autentificarea SFTP bazată pe chei
  • Calea rădăcină la distanță — de obicei /public_html, /var/www/html, sau /home/username/public_html în funcție de stiva serverului

Dacă lucrați cu un VPS cu cPanel, credențialele FTP sunt create în cPanel > FTP Accounts, unde puteți limita fiecare cont la un director specific — o practică de securitate care limitează impactul în cazul compromiterii credențialelor.

Pasul 1: Instalați și Configurați FileZilla

FileZilla rămâne cel mai utilizat client FTP cross-platform datorită suportului pentru FTP, FTPS și SFTP, managerului de site-uri integrat și cozii de transfer cu capacitate de reluare.

Descărcare: Obțineți FileZilla Client (nu Server) de la filezilla-project.org. Verificați suma de control SHA-512 publicată pe pagina de descărcare înainte de a executa programul de instalare — acesta este un pas pe care majoritatea tutorialelor îl omit, dar atacurile asupra lanțului de aprovizionare pentru utilitare populare sunt documentate.

După instalare, deschideți FileZilla și navigați la Edit > Settings > Transfers > File Types. Setați tipul de transfer implicit la Binary, nu Auto. Detectarea automată poate corupe silențios fișierele binare (imagini, arhive, executabile) prin aplicarea conversiei de sfârșit de linie când euristica clasifică greșit fișierul.

Pasul 2: Creați o Intrare în Site Manager

Utilizarea barei Quickconnect este acceptabilă pentru sarcini ocazionale, dar stochează credențialele în text clar în recentservers.xml. Pentru orice conexiune recurentă, utilizați în schimb Site Manager.

  1. Deschideți File > Site Manager (sau apăsați Ctrl+S).
  2. Faceți clic pe New Site și dați-i un nume descriptiv.
  3. Configurați fila General:
  • Protocol: Selectați SFTP pentru servere bazate pe SSH, sau FTP cu TLS explicit pentru FTPS.
  • Host: Introduceți hostname-ul sau IP-ul serverului.
  • Port: Lăsați necompletat pentru a utiliza portul implicit al protocolului, sau specificați explicit.
  • Logon Type: Alegeți Normal pentru autentificare cu parolă, sau Key file pentru SFTP bazat pe cheie SSH.
  • User / Password: Introduceți credențialele.
  1. În fila Advanced, setați Default remote directory la rădăcina web (ex., /public_html) și Default local directory la folderul proiectului. Aceasta elimină timpul de navigare la fiecare sesiune.
  2. Faceți clic pe Connect.

Pentru SFTP cu autentificare bazată pe cheie — abordarea recomandată pentru Servere Dedicate — indicați câmpul Key file către cheia privată (format .pem sau .ppk). FileZilla utilizează propriul format de cheie; convertiți cheile OpenSSH cu PuTTYgen dacă este necesar.

Pasul 3: Navigați în Interfața cu Două Panouri

Odată conectat, FileZilla prezintă o vizualizare împărțită:

  • Panoul stâng (Local Site): Sistemul de fișiere local. Navigați la directorul care conține fișierele pe care doriți să le încărcați.
  • Panoul drept (Remote Site): Sistemul de fișiere al serverului. Navigați la directorul țintă — de obicei /public_html pentru conținut web.
  • Panourile de coadă de jos: Afișează transferurile în așteptare, transferurile eșuate și transferurile reușite cu marcaje temporale și numărul de octeți.

Arborele de directoare din partea de sus a fiecărui panou și lista de fișiere de dedesubt sunt independente — făcând clic pe un folder în arbore nu derulează automat lista de fișiere. Acest lucru îi surprinde pe utilizatorii noi care se întreabă de ce lista de fișiere pare goală.

Pasul 4: Încărcați Fișiere

Fișier Unic sau Selecție Manuală

Faceți clic dreapta pe orice fișier din panoul local și selectați Upload, sau trageți-l în panoul de la distanță. Pentru selecția mai multor fișiere, utilizați Ctrl+Click (Windows/Linux) sau Cmd+Click (macOS) pentru selecție necontiguă, sau Shift+Click pentru un interval.

Încărcare prin Drag-and-Drop

Selectați fișierele din panoul local și trageți-le în folderul țintă din panoul de la distanță. FileZilla pune în coadă toate elementele și începe transferul imediat.

Încărcare Sincronizată a Directorului

Pentru implementarea unui întreg director de proiect, faceți clic dreapta pe folderul local și alegeți Upload. FileZilla încarcă recursiv tot conținutul, păstrând structura de directoare pe server.

Monitorizarea Progresului Transferului

Coada de transfer din partea de jos afișează:

  • Numele și dimensiunea fișierului
  • Viteza de transfer (octeți/secundă)
  • Timpul scurs și estimat
  • Calea de destinație de la distanță

Un transfer care se finalizează dar afișează 0 octeți transferați reprezintă un eșec silențios — fișierul a fost creat dar este gol. Aceasta indică de obicei o problemă de permisiuni pe directorul de destinație sau o depășire a cotei de disc pe server.

Pasul 5: Setați Permisiunile Corecte ale Fișierelor după Încărcare

Acesta este cel mai frecvent pas omis și sursa unui procent semnificativ din tichetele de suport „site-ul meu este defect după încărcare”.

După încărcare, faceți clic dreapta pe un fișier sau director din panoul de la distanță și selectați File permissions. Reprezentarea numerică corespunde direct octeților de permisiuni Unix:

  • 644 — Standard pentru fișierele web (proprietar citire/scriere, grup/alții doar citire)
  • 755 — Standard pentru directoare și scripturi executabile
  • 600 — Fișiere private care nu trebuie să fie accesibile web (ex., fișiere de configurare cu credențiale)
  • 777 — Nu utilizați niciodată în producție; acordă acces de scriere tuturor

Pentru o corectare recursivă a permisiunilor pe un întreg arbore de directoare încărcat, bifați Recurse into subdirectories și aplicați 644 fișierelor și 755 directoarelor separat. FileZilla nu diferențiază fișierele de directoare într-o singură trecere recursivă — trebuie să rulați de două ori cu filtrul corespunzător selectat.

Alternativ, după conectarea prin SSH, corectați permisiunile în masă:

find /public_html -type f -exec chmod 644 {} ;
find /public_html -type d -exec chmod 755 {} ;

Pasul 6: Verificați Încărcarea

Nu presupuneți că o coadă de transfer finalizată înseamnă că implementarea este corectă. Efectuați acești pași de verificare:

  1. În FileZilla: Reîmprospătați directorul de la distanță (F5 sau clic dreapta > Refresh) și confirmați că dimensiunile fișierelor corespund cu originalele locale. O nepotrivire de dimensiune indică un transfer trunchiat.
  2. Prin browser: Încărcați pagina actualizată și efectuați o reîmprospătare forțată (Ctrl+Shift+R) pentru a ocoli memoria cache a browserului.
  3. Prin SSH: Pentru verificarea pe server, comparați sumele de control:
md5sum /public_html/index.html

Comparați rezultatul cu suma de control a fișierului local. O nepotrivire înseamnă că fișierul a fost corupt în tranzit — rar cu SFTP, dar posibil cu FTP simplu pe conexiuni instabile.

Tehnici Avansate și Modele de Producție

Reluarea Transferurilor Eșuate

Dacă transferul unui fișier mare este întrerupt, FileZilla utilizează comanda FTP REST (sau echivalentul SFTP) pentru a relua de la ultimul octet confirmat. În fila Failed transfers, faceți clic dreapta pe elementul eșuat și selectați Reset and requeue failed files, apoi porniți din nou coada. Aceasta funcționează fiabil cu SFTP; reluarea FTP simplu depinde de suportul serverului pentru comanda REST.

Excluderea Fișierelor din Încărcare

Edit > Filename Filters din FileZilla vă permite să definiți reguli pentru excluderea fișierelor care corespund unor tipare — de exemplu, excluderea directoarelor .git, node_modules, .DS_Store, sau fișierelor .env de la încărcarea accidentală. Aceasta este o măsură de protecție critică: încărcarea unui fișier .env care conține credențiale de bază de date sau chei API în rădăcina web publică reprezintă un incident grav de securitate.

Transferuri FTP Scriptate/Automatizate

Pentru pipeline-uri CI/CD sau implementări programate, interfața grafică FileZilla nu este adecvată. Utilizați în schimb utilitarul lftp din linia de comandă:

lftp -u username,password sftp://your-server.com << 'EOF'
set sftp:auto-confirm yes
mirror --reverse --delete --verbose /local/project/ /public_html/
EOF

Indicatorul --reverse încarcă (local la distanță), --delete elimină fișierele de la distanță care nu există local (utilizați cu precauție), iar --verbose înregistrează fiecare operațiune. Acest model este potrivit pentru implementări automate în medii de VPS Hosting unde accesul SSH este disponibil.

Utilizarea rsync Peste SSH ca Alternativă la FTP

Pentru implementări mari sau sincronizări incrementale, rsync peste SSH este dramatic mai eficient decât FTP, deoarece transferă doar blocurile modificate din fișiere, nu fișierele întregi:

rsync -avz --progress --delete /local/project/ user@your-server.com:/public_html/
    -a — Modul arhivă (păstrează permisiunile, marcajele temporale, legăturile simbolice)
    -v — Ieșire detaliată
    -z — Comprimă datele în timpul transferului
    --delete — Elimină fișierele de la distanță șterse local
    
    rsync necesită acces SSH și nu este disponibil prin panourile de control ale găzduirii partajate, dar este instrumentul corect pentru orice mediu în care controlați stiva serverului.
    Depanarea Problemelor Comune FTP și SFTP
    Timeout sau Conexiune Refuzată
    
    Verificați că hostname-ul se rezolvă corect: nslookup ftp.yourdomain.com
  • Confirmați că portul este deschis: telnet your-server.com 21 sau nc -zv your-server.com 22
  • Verificați regulile de firewall ale serverului — pe Linux, iptables -L sau ufw status vor arăta dacă portul este permis
  • Pentru SFTP, confirmați că daemonul SSH rulează: systemctl status sshd
  • 530 Autentificare Eșuată la Conectare

    • Confirmați că numele de utilizator este exact — numele de utilizatori FTP sunt sensibile la majuscule pe sistemele Linux
    • Verificați că contul nu este blocat: passwd -S username pe server
    • Verificați /var/log/auth.log sau /var/log/secure pentru motivul respingerii
    • Dacă utilizați cPanel, confirmați că contul FTP nu a expirat sau nu a fost suspendat

    550 Permisiune Refuzată la Încărcare

    Directorul de la distanță nu acordă acces de scriere utilizatorului FTP autentificat. Verificați proprietatea și permisiunile:

    ls -la /public_html/

    Dacă directorul este deținut de un alt utilizator, fie ajustați proprietatea (chown), fie acordați permisiunea de scriere pentru grup (chmod g+w). Pe găzduirea partajată, aceasta se gestionează prin managerul de fișiere al panoului de control al găzduirii.

    Eșecuri de Conexiune în Modul Pasiv

    Dacă vedeți „Could not retrieve directory listing” după o autentificare reușită, intervalul de porturi pasive al serverului nu este accesibil. În FileZilla, mergeți la Edit > Settings > FTP > Passive mode și încercați Fall back to active mode. Pe server, asigurați-vă că intervalul de porturi pasive (de obicei 49152–65534) este deschis în firewall și configurat corect în setările daemonului FTP (ex., pasv_min_port și pasv_max_port în vsftpd.conf).

    Coruperea Transferului Binary vs. ASCII

    Fișierele PHP încărcate în modul ASCII de pe un client Windows pot avea sfârșiturile de linie în stil Windows (rn) convertite, ceea ce poate defecta anumite parsere. Confirmați că FileZilla este setat la modul Binary în Transfer > Transfer Type > Binary.

    Metode Alternative de Încărcare

    FTP nu este întotdeauna instrumentul potrivit. Următoarele alternative merită cunoscute:

    cPanel / Plesk File Manager: Disponibil prin panoul de control bazat pe web pe Găzduire Web Partajată și Panouri de Control VPS. Potrivit pentru editări mici și încărcări de fișiere individuale. Are o limită de dimensiune a fișierului de 2 GB în majoritatea implementărilor și nu este potrivit pentru transferuri în masă.

    SCP (Secure Copy): Un instrument de copiere bazat pe SSH, simplu și scriptabil. Fără capacitate de reluare, fără listare de directoare, dar extrem de fiabil pentru transferuri unice:

    scp -r /local/project/ user@your-server.com:/public_html/

    Implementare bazată pe Git: Trimiteți către un repository bare pe server și utilizați un hook post-receive pentru a extrage fișierele în rădăcina web. Acesta este cel mai curat model de implementare pentru cod — oferă istoric al versiunilor, capacitate de rollback și elimină complet gestionarea manuală a fișierelor.

    Sincronizare object storage / CDN: Pentru active statice, sincronizarea într-un bucket compatibil S3 și servirea prin CDN este mai scalabilă decât implementarea bazată pe FTP și elimină complet serverul web din calea de livrare a activelor statice.

    Matrice de Decizie Rapidă: Alegerea Metodei Corecte de Transfer

    ScenariuMetodă Recomandată
    Editare ocazională a unui fișier pe găzduire partajatăcPanel File Manager
    Implementare regulată a site-ului, fără SSHSFTP prin FileZilla
    Implementare automată prin pipeline CI/CD`lftp` sau `rsync` peste SSH
    Fișier binar mare, transfer unic`scp`
    Implementare incrementală a codului`rsync` sau hook Git post-receive
    Sistem legacy care necesită FTPFTPS (TLS explicit) minim
    Implementare în masă a activelor staticeSincronizare object storage compatibil S3

    Listă de Verificare Tehnică Înainte de Lansare

    • Protocol: Doar SFTP sau FTPS — niciodată FTP simplu pe un server de producție
    • Credențiale: Utilizați conturi FTP/SFTP dedicate limitate la directorul minim necesar, nu root sau utilizatorul principal al sistemului
    • Modul de transfer: Binary, nu Auto sau ASCII
    • Permisiunile fișierelor: 644 pentru fișiere, 755 pentru directoare — verificate după încărcare
    • Fișiere sensibile: Confirmați că .env, .git/, node_modules/ și fișierele de configurare cu credențiale sunt excluse din încărcare prin filtre de nume de fișiere
    • Verificarea sumei de control: Comparație MD5 sau SHA-256 pentru fișierele critice după transfer
    • Modul pasiv: Activat implicit în clientul FTP
    • Chei SSH: Utilizați autentificarea bazată pe cheie pentru SFTP pe orice server pe care îl controlați; dezactivați autentificarea prin parolă în sshd_config unde este posibil

    Întrebări Frecvente

    Care este diferența dintre FTP și SFTP?

    FTP transmite datele și credențialele în text clar prin două canale TCP separate (control pe portul 21, date pe portul 20 sau efemer). SFTP este un protocol complet diferit construit pe SSH care multiplexează totul printr-un singur canal criptat pe portul 22. Împărtășesc un nume, dar nu împărtășesc niciun cod de protocol.

    De ce FileZilla afișează „Connection timed out” chiar și cu credențiale corecte?

    Un timeout înainte de autentificare înseamnă de obicei că portul serverului este inaccesibil — blocat de un firewall, serviciul nu rulează sau hostname-ul nu se rezolvă la IP-ul corect. Un timeout după autentificare indică de obicei o problemă de mod pasiv în care intervalul de porturi al canalului de date este blocat de firewall. Verificați regulile de firewall ale serverului și confirmați că intervalul de porturi pasive este deschis.

    Pot folosi FTP pentru a încărca fișiere pe un VPS fără panou de control?

    Da. Instalați un daemon SSH capabil de SFTP (OpenSSH, care este standard pe toate distribuțiile Linux) — nu este necesar software suplimentar pentru server FTP. Conectați-vă cu FileZilla folosind protocolul SFTP pe portul 22 și credențialele SSH sau perechea de chei. Aceasta este abordarea recomandată pentru orice mediu de VPS Hosting.

    Ce permisiuni ar trebui să aibă fișierele WordPress după încărcarea prin FTP?

    Fișierele de bază WordPress ar trebui să fie 644, directoarele 755, iar wp-config.php ar trebui să fie 600 (doar proprietar citire/scriere). Directorul wp-content/uploads necesită 755 sau 775 pentru ca serverul web să poată scrie media încărcate. Nu setați niciodată niciun director WordPress la 777.

    Există o limită de dimensiune a fișierului la încărcarea prin FTP?

    FTP și SFTP în sine nu impun nicio limită de dimensiune a fișierului — transferurile sunt în flux continuu. Limitele practice provin din cotele de disc ale serverului, PHP upload_max_filesize (irelevant pentru FTP, care ocolește complet PHP), sau limitele sistemului de fișiere (ext4 suportă fișiere de până la 16 TB). Pentru Găzduire Web Partajată, furnizorul de hosting poate impune o cotă de disc care limitează stocarea totală mai degrabă decât dimensiunea fișierului individual.

    15%

    Economisește 15% la toate serviciile de găzduire

    Testează-ți abilitățile și obține Reducere la orice plan de găzduire

    Utilizați codul:

    Skills
    Începeți