اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

دریافت مشاوره رایگان

آموزش کامل اتصال FTP به سرور و هاست

این راهنما همهٔ جنبه‌های لازم برای اتصال، انتقال، ایمن‌سازی و عیب‌یابی اتصال به سرورهای FTP/FTPS/SFTP را به‌صورت گام‌به‌گام، همراه مثال‌ها، تنظیمات متداول سرور و کلاینت، نکات امنیتی و دستورات پرکاربرد پوشش می‌دهد.

آماده‌سازی: اطلاعات و پیش‌نیازها

قبل از تلاش برای اتصال به سرور، اطلاعات و موارد زیر را آماده کنید:

– آدرس سرور (Host): دامنه یا آدرس IP (مثلاً example.com یا 192.0.2.1).

– پورت: پیش‌فرض FTP = 21، FTPS (implicit) = 990، SFTP = 22؛ ممکن است ارائه‌دهنده پورت دیگری تعیین کند.

– نام کاربری و رمز عبور: از میزبان یا ادمین دریافت می‌شود.

– نوع اتصال مورد نیاز: FTP، FTPS (Explicit/Implicit) یا SFTP.

– (اختیاری) کلید خصوصی SSH برای SFTP (PEM/ppk).

– کلاینت دلخواه: FileZilla, WinSCP, Cyberduck, lftp, command-line ftp/sftp, PuTTY/PSCP/PSFTP.

– سطح دسترسی مورد انتظار: پوشهٔ home، public_html، یا روت (معمولاً دسترسی روت به FTP امن نیست).

– اتصال شبکه: فایروال یا NAT ممکن است پورت‌ها را مسدود کند؛ دسترسی اینترنتی به پورت‌های مورد نیاز لازم است.

تفاوت پروتکل‌ها و انتخاب مناسب

– FTP (Plain FTP): متن ساده — نام کاربری، رمز عبور و محتوا رمزگذاری نمی‌شود. مناسب شبکهٔ داخلی یا محیط‌های کنترل‌شده. نه برای انتقال داده‌های حساس.

– FTPS (FTP over SSL/TLS): همان FTP با لایهٔ امن TLS/SSL. دو حالت: Explicit (پورت 21; TLS ارتقا می‌یابد) و Implicit (معمولاً پورت 990). مناسب میزبانی وب و زمانی که سرور از گواهی TLS پشتیبانی می‌کند.

– SFTP (SSH File Transfer Protocol): انتقال فایل روی کانال SSH؛ از نظر امنیتی قوی‌تر و رایج‌تر در سیستم‌های لینوکس/SSH. پورت پیش‌فرض 22.

کدام را انتخاب کنیم؟ به‌طور کلی: اگر سرور SSH دارد و شما می‌توانید SFTP انتخاب کنید، SFTP را برگزینید. اگر میزبان فقط FTP ارائه می‌دهد، از FTPS اگر ممکن است استفاده کنید.

مفاهیم پایه: حالت‌های فعال و منفعل در FTP

– Active Mode (حالت فعال): کلاینت به سرور متصل می‌شود ولی سرور از پورت 20 به کلاینت کانکشن دیتا برقرار می‌کند — مشکل‌ساز با فایروال/NAT.

– Passive Mode (حالت منفعل): سرور پورت داده را باز می‌آورد و کلاینت به آن متصل می‌شود — اغلب مناسب‌تر با فایروال.

گرچه در FTPS/ SFTP این موضوع متفاوت است (SFTP فقط از یک کانال واحد استفاده می‌کند)، در FTP کلاسیک معمولاً Passive mode استفاده شود.

اتصال با کلاینت گرافیکی: FileZilla (توضیح کامل)

FileZilla یک کلاینت رایگان و محبوب است. مراحل اتصال و تنظیمات:

دانلود و نصب

– فایل نصب را از سایت رسمی دانلود و نصب کنید. نسخهٔ Client را انتخاب کنید (نه Server).

 

ساخت سایت جدید (Site Manager)

  • FileZilla را باز کنید.
  • منوی File → Site Manager → New Site. نامی انتخاب کنید.
  • فیلدها را پر کنید:

– Host: example.com یا IP

– Port: 21 یا 22 یا پورتی که ارائه‌دهنده گفته

– Protocol: انتخاب کنید:

– FTP — File Transfer Protocol (برای FTP/FTPS)

– SFTP — SSH File Transfer Protocol

– Encryption (برای FTP):

– Use explicit FTP over TLS if available (توصیه‌شده برای FTPS explicit)

– Require explicit FTP over TLS (برای اطمینان).

– Use implicit FTP over TLS (برای FTPS implicit روی پورت 990)

– Logon Type:

– Anonymous (اگر اجازه داده شده)

– Normal — وارد کردن username و password

– Ask for password — امن‌تر برای ذخیره نکردن رمز

– Key file (برای SFTP با کلید خصوصی)

  • پس از پر کردن اطلاعات، Save و سپس
  • در اولین اتصال FTPS/SFTP ممکن است پیغام قبول کلید/گواهی ظاهر شود — جزئیات را بررسی و Accept/Always trust را بر اساس سیاست امنیتی انتخاب کنید.

حافظهٔ رمز عبور و امنیت

– از ذخیرهٔ رمز در کلاینت روی کامپیوتر عمومی خودداری کنید.

– استفاده از passphrase برای کلید خصوصی SSH توصیه می‌شود.

انتقال فایل

– پنجرهٔ سمت چپ: فایل‌های محلی؛ سمت راست: فایل‌های سرور.

– Drag & Drop برای انتقال.

– نوار وضعیت نشان‌گر صف انتقال و تاریخچهٔ خطاها است.

اتصال با WinSCP (Windows)

WinSCP برای ویندوز رابط گرافیکی و همچنین اسکریپت‌نویسی دارد.

مراحل

  • نصب
  • در پنجرهٔ Login:

– File protocol: SFTP یا FTP (یا FTPS).

– Host name، Port number، User name، Password را وارد کنید.

– Advanced → Authentication برای تعیین private key (برای SFTP) یا TLS settings.

  • Login → Accept certificate/host key در اولین اتصال.
  • رابط: دو پنل (Commander) یا شکل Explorer؛ انتقال با کشیدن و رها کردن.

 

 

 

اسکریپت‌نویسی و خط فرمان

– WinSCP امکان اجرای اسکریپت اتوماتیک و استفاده در Task Scheduler را دارد. مثال اسکریپت:

  open sftp://user@example.com/ -privatekey="C:\path\key.ppk"
  put C:\local\file.txt /remote/path/
  exit

اتصال از خط فرمان: ftp، sftp، lftp، scp

خط فرمان برای اتوماسیون و سرورهای بدون GUI ضروری است.

FTP پایه (کلاینت ftp در لینوکس)

– اتصال:

ftp example.com

سپس نام کاربری و رمز را وارد کنید.

– دستورات مفید:

  - ls — فهرست فایل‌ها
  - cd remote_dir — تغییر دایرکتوری سرور
  - lcd local_dir — تغییر دایرکتوری محلی
  - get filename — دانلود فایل
  - put filename — آپلود فایل
  - mget/mput — چند فایل
  - ascii / binary — حالت انتقال
  - bye/quit — خروج

– نکته: این ftp معمولاً غیررمزی است؛ از آن در اینترنت عمومی استفاده نکنید.

SFTP (کلاینت sftp در لینوکس/مک)

– اتصال:

sftp user@example.com

– دستورات:

  - ls, lls — لیست در سرور و محلی
  - cd, lcd — تغییر دایرکتوری
  - get file — دانلود
  - put file — آپلود
  - mkdir, rmdir, rm — مدیریت فایل/پوشه
  - exit — خروج

– SFTP از SSH استفاده می‌کند، امن و معمولاً بهترین گزینه.

SCP (کپی امن تک‌دستور)

– مثال:

  scp localfile user@example.com:/remote/path/

– مناسب برای انتقال تکی یا در اسکریپت‌ها؛ فرمت شناخته‌شده و ساده.

lftp (پیشرفته، پشتیبانی از FTP/FTPS/SFTP و صف‌بندی)

– lftp برای اسکریپت‌ها و ذیل کردن چندین دستور مناسب است:

  lftp -u user,password -e "mirror -R localdir remotedir; quit" ftp://example.com

استفاده از کلید SSH برای SFTP (احراز هویت بدون رمز)

استفاده از کلید عمومی-خصوصی امن‌تر از رمز عبور است و امکان ورود بدون رمز را فراهم می‌کند.

تولید کلید (در لینوکس/مک)

– دستور:

ssh-keygen -t ed25519 -C “your_email@example.com”

یا برای RSA: ssh-keygen -t rsa -b 4096

– فایل private (مثلاً ~/.ssh/id_ed25519) و public (~/.ssh/id_ed25519.pub) ساخته می‌شود.

– برای افزایش امنیت از passphrase استفاده کنید.

نصب کلید عمومی در سرور

– اگر دسترسی SSH دارید:

mkdir -p ~/.ssh

chmod 700 ~/.ssh

cat id_ed25519.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

– اگر فقط FTP panel دارید، بسیاری از کنترل‌پنل‌ها (cPanel، Plesk) امکان بارگذاری کلید عمومی را دارند.

استفاده در کلاینت‌ها

– FileZilla: Site Manager → Logon Type: Key file → مسیر فایل (معمولاً فایل private). ممکن است لازم باشد کلید را به فرمت PPK با PuTTYgen تبدیل کنید برای استفاده در PuTTY/WinSCP.

– WinSCP: Advanced → Authentication → Private key file.

– ssh-agent / Pageant: برای مدیریت passphrase و بارگذاری کلید.

تنظیمات سرور: پیکربندی پایه‌ای برای مدیران سیستم

در این بخش مثال‌هایی از تنظیم FTP/SFTP server در لینوکس آورده شده است.

راه‌اندازی OpenSSH (برای SFTP)

– معمولاً OpenSSH server نصب است:

  sudo apt install openssh-server

– تنظیمات SFTP در /etc/ssh/sshd_config:

– اطمینان از AllowUsers یا AllowGroups در صورت نیاز.

– برای چاه‌زدن (chroot) کاربران SFTP:

    Subsystem sftp internal-sftp
    Match Group sftpusers
      ChrootDirectory /var/www/%u
      ForceCommand internal-sftp
      X11Forwarding no
      AllowTcpForwarding no

– پس از تغییرات:

  sudo systemctl restart sshd

راه‌اندازی vsftpd (برای FTPS/FTP)

– نصب:

  sudo apt install vsftpd

– مثال تنظیمات کلیدی در /etc/vsftpd.conf:

  - anonymous_enable=NO
  - local_enable=YES
  - write_enable=YES
  - chroot_local_user=YES
  - ssl_enable=YES
  - rsa_cert_file=/etc/ssl/certs/vsftpd.pem
  - rsa_private_key_file=/etc/ssl/private/vsftpd.key

– تولید گواهی خودامضا (برای تست):

  openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

– سپس سرویس را ری‌استارت کنید:

  sudo systemctl restart vsftpd

مجوزها و مالکیت فایل‌ها (مهم)

– برای chroot و امنیت، دایرکتوری chroot باید مالک root و مجوز 755 داشته باشد؛ زیرپوشه‌ها می‌توانند توسط کاربر باشند.

– مثال:

  sudo chown root:root /home/ftpuser
  sudo chmod 755 /home/ftpuser
  mkdir /home/ftpuser/uploads
  sudo chown ftpuser:ftpuser /home/ftpuser/uploads

ساختار دایرکتوری، مجوزها و مالکیت

– سلسله‌مراتب معمول:

  - /home/username — محل پیش‌فرض کاربران
  - /var/www/html یا public_html — محل فایل‌های وب

– مجوزها:

– chmod 755 برای دایرکتوری‌هایی که نیاز به اجرای لیست دارند.

– chmod 644 برای فایل‌های عمومی.

– chmod 700 یا 600 برای فایل‌هایی که باید خصوصی بمانند.

– مالیکت (owner:group): chown user:group file

– نکتهٔ امنیتی: هرگاه ممکن است از دسترسی نوشتن عمومی (others write) خودداری کنید (مثلاً chmod 777).

نکات امنیتی و بهترین شیوه‌ها

– ترجیح: SFTP یا FTPS به‌جای FTP ساده.

– از کلیدهای SSH با passphrase استفاده کنید. از ssh-agent برای مدیریت passphrase استفاده کنید.

– گواهی معتبر TLS در FTPS: از گواهی‌های صادرشده توسط CA معتبر استفاده کنید (Let’s Encrypt را بررسی کنید اگر سرور HTTP/S دارید؛ FTPS معمولاً نیاز به CA متفاوت دارد).

– محدودیت دسترسی: کاربران را به دایرکتوری مورد نیاز chroot کنید تا دسترسی به کل سیستم محدود شود.

– محدود کردن کاربران: AllowUsers یا AllowGroups در SSH/FTP.

– مانیتورینگ و لاگ: لاگ‌ها را به‌طور منظم نظارت کنید (auth.log, vsftpd.log).

– فایروال: پورت‌های غیرضروری را ببندید؛ برای FTP passive باید بازه پورت‌های پاسیو را مشخص و باز کنید.

– استفاده از انتقال امن برای اسکریپت‌ها (scp/rsync-over-ssh) وقتی لازم است.

– محافظت در برابر brute-force: fail2ban یا مشابه برای مسدود کردن تلاش‌های متوالی.

– حذف یا غیرفعال کردن دسترسی anonymous مگر ضرورت داشته باشد.

– بررسی و نصب آپدیت‌های امنیتی منظم برای SSH/FTP server.

عیب‌یابی عمومی و رفع خطاها

در این بخش خطاهای رایج و راه‌حل‌ها آورده شده است.

خطای اتصال: Connection refused یا timed out

– بررسی کنید سرویس فعال است (systemctl status sshd/vsftpd).

– پورت و آدرس درست است؟ از telnet example.com 21 یا 22 استفاده کنید.

– فایروال محلی یا میزبان (ufw, iptables، یا فایروال شبکه) پورت را مسدود نکرده باشد.

– NAT یا روتر در مسیر هست؟ پورت فورواردینگ انجام شود.

خطای TLS/SSL: certificate verify failed یا TLS negotiation failed

– گواهی منقضی یا self-signed است — اگر در محیط امن و کنترل‌شده هستید Accept کنید یا گواهی معتبر نصب کنید.

– برای FTPS implicit/explicit پورت/تنظیمات Encryption را بررسی کنید.

خطای passive/active data connection timeout

– در حالت FTP کلاسیک، اگر از حالت Active استفاده می‌کنید و کلاینت پشت NAT است ممکن است Data connection برقرار نشود — به Passive تغییر دهید.

– در حالت Passive، مطمئن شوید رنج پورت‌های پاسیو در سرور مشخص و در فایروال باز شده است.

permission denied یا cannot create directory

– بررسی مالکیت و مجوز پوشهٔ مقصد: chmod/chown مناسب را اعمال کنید.

– در chroot اگر دایرکتوری ریشه مالیکت root نداشته باشد، SFTP ممکن است خطا دهد.

authentication errors (permission denied)

– نام کاربری و رمز درست‌اند؟ از ورود SSH دستی برای تست استفاده کنید.

– اگر از کلید استفاده می‌کنید، اطمینان از مجوزهای درست فایل‌ها: private key نباید جهانی خواندنی باشد (chmod 600).

– برای SSH، authorized_keys صحیح و دارای newline در انتها باشد.

خطای 530 Login incorrect (برای FTP)

– اعتبارنامه اشتباه است یا حساب غیرفعال/مسدود شده. بررسی کنید از پنل هاست یا ادمین وضعیت حساب.

سرعت پایین یا قطع مکرر

– اتصال شبکه ضعیف یا قطعی ISP.

– محدودیت پهنای باند در سرور یا throttling.

– برای فایل‌های بزرگ از rsync-over-ssh یا resume support در کلاینت‌ها استفاده کنید.

سناریوها و مثال‌های عملی

موارد کاربردی و دستورات نمونه.

مثال A: آپلود سایت به public_html با FileZilla (SFTP)

  • Site Manager → Host: example.com → Protocol: SFTP → Logon Type: Normal → Username/Password → Port: 22 → Connect.
  • در سمت راست به /home/username/public_html بروید.
  • فایل‌های محلی را کشیده و در پوشهٔ سمت راست رها کنید.
  • پس از آپلود، مجوز فایل‌ها را روی 644 و پوشه‌ها 755 تنظیم کنید (در FileZilla راست‌کلیک → File permissions).

مثال B: انتقال پوشهٔ محلی به سرور با lftp (ریکرسیو)

lftp -u user,password ftp://example.com -e "mirror -R /local/path /remote/path; quit"

مثال C: دانلود بکاپ از سرور با scp

scp user@example.com:/var/backups/backup.tar.gz ~/backups/

مثال D: نصب کلید SSH و اتصال بدون رمز

– تولید کلید:

  ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_site -C "site key"

– کپی کلید به سرور:

  ssh-copy-id -i ~/.ssh/id_ed25519_site.pub user@example.com

– اتصال:

  sftp -i ~/.ssh/id_ed25519_site user@example.com

مثال E: پیکره‌بندی Passive FTP در vsftpd

– در /etc/vsftpd.conf اضافه کنید:

  pasv_enable=YES
  pasv_min_port=30000
  pasv_max_port=30100
  pasv_address=YOUR_PUBLIC_IP

– باز کردن پورت‌ها در فایروال (مثال ufw):

  sudo ufw allow 21/tcp
  sudo ufw allow 30000:30100/tcp

اتوماسیون و اسکریپت‌ها

برای پشتیبان‌گیری منظم یا انتقال فایل زمان‌بندی شده می‌توانید از cron، rsync یا اسکریپت‌های sftp استفاده کنید.

نمونه کرون برای انتقال با scp

– اسکریپت bash /usr/local/bin/upload_backup.sh:

  !/bin/bash
  scp /path/to/backup.tar.gz user@example.com:/remote/backups/

– کرون:

  0 2 * * * /usr/local/bin/upload_backup.sh

استفاده از rsync over ssh (ذخیرهٔ پهنای باند و resume)

rsync -avz -e "ssh -i ~/.ssh/id_rsa" /local/dir/ user@example.com:/remote/dir/

دستورات و منابع پرکاربرد (مرجع سریع)

- ssh-keygen, ssh-copy-id, ssh, sftp, scp, rsync, ftp, lftp, curlftpfs (مونت FTP)، vsftpd, proftpd، FileZilla, WinSCP. 
- باز کردن پورت جهت تست: telnet example.com 22 یا nc -vz example.com 22 
- بررسی سرویس‌ها: systemctl status sshd vsftpd 
- لاگ‌ها: /var/log/auth.log، /var/log/vsftpd.log یا لاگ‌های مربوط به سرویس

چک‌لیست قبل از اتصال برای کاربر نهایی

– آیا آدرس، پورت، نام کاربری و رمز عبور درست است؟

– از SFTP/FTPS به جای FTP استفاده می‌کنید؟

– آیا فایروال محلی/شبکه پورت مورد نیاز را باز کرده است؟

– آیا از حالت Passive برای FTP استفاده کرده‌اید (در صورت نیاز)؟

– آیا اگر از کلید SSH استفاده می‌کنید، کلید بارگذاری و مجوزها درست‌اند؟

– آیا دایرکتوری مقصد دارای مجوز کافی است؟

نکات تکمیلی و توصیه‌های عملی

– برای انتقال فایل‌های بزرگ از resume (ادامه آپلود/دانلود) پشتیبانی استفاده کنید؛ FileZilla این امکان را دارد.

– برای توسعه وب، پس از آپلود فایل‌های PHP/HTML، بررسی کنید کش مرورگر سرور یا CDN پاک شود تا تغییرات نمایان شود.

– برای امنیت اضافی، محدودیت IP را در سرور اعمال کنید تا فقط آدرس‌های مشخص اجازهٔ اتصال داشته باشند.

– اگر میزبان شما cPanel یا Plesk دارد، محیط فایل‌ها و کلیدها را معمولاً از طریق پنل مدیریت نیز می‌توانید کنترل کنید (FTP Accounts, SSH Access).

– برای میزبانی تجاری از SFTP/FTPS با CA معتبر استفاده کنید و ذخیرهٔ رمز در کلاینت عموماً توصیه نمی‌شود.

جمع‌بندی کوتاه (عملی)

– بهترین گزینهٔ امن برای انتقال فایل: SFTP (SSH).

– اگر SFTP در دسترس نیست، FTPS با TLS گزینهٔ بعدی است.

– برای FTP کلاسیک از Passive mode استفاده کنید و هرگز اطلاعات حساس را بدون رمزگذاری منتقل نکنید.

– همیشه مجوزها، لاگ‌ها و به‌روزرسانی‌های امنیتی را نسبت به سرور و سرویس‌گیرنده بررسی کنید.

4.7/5 - (2869 امتیاز)

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


8 - 13

قوانین

قوانین ارسال دیدگاه

لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.