پروتکل FTP چیست؟
تقریباً اکثر افرادی که در حوزه وب کار می کنند، با کاربرد پروتکل FTP آشنا هستند. اگر به هر دلیلی نیاز به اطلاعات جامع و دقیقی در مورد این پروتکل انتقال فایل دارید، در جای درستی قرار دارید.
پروتکل FTP برای انتقال فایل ها بین سرور و کلاینت استفاده می شود و کار خود را بر اساس مدل سرور-کلاینت انجام می دهد. این پروتکل برای وظایف اصلی خود از پورت های جداگانه استفاده می کند به این صورت که پورت 20 برای ارسال داده و از پورت 21 برای گوش دادن به فرمان ها تنظیم شده است.
در واقع، FTP یک پروتکل client-server است که سرویس گیرنده از طریق آن، فایل موردنظر را درخواست می کند و سرور آن را ارائه می دهد. در این میان، جا دارد به این نیز اشاره کنیم که استفاده از یک سرور مجازی با قدرت پردازشی و عملکرد بالا یک راهکار عالی برای بالا بردن کیفیت این انتقال است. در ادامه به هر آنچه که باید در مورد پروتکل FTP بدانید، از کاربرد این پروتکل گرفته تا دستورات و ویژگی های آن اشاره می کنیم. برای کسب اطلاعات بیشتر در مورد پروتکل انتقال فایل FTP، ادامه مطلب را از دست ندهید:
پروتکل FTP چیست و چه کاربردی دارد؟
FTP (File Transfer Protocol) یک پروتکل شبکه برای انتقال فایل بین کامپیوترها از طریق اتصالات TCP/IP است. در یک تراکنش FTP، یکی از کامپیوترها به عنوان سرور عمل می کند و این ارتباط و انتقال فایل در صورتی انجام می شود که دو طرف به اینترنت وصل باشند. سرور باید با اجرای سرویس های FTP به درستی پیکربندی شود و سرویس گیرنده نیز باید نرم افزار FTP را برای دسترسی به این سرویس ها نصب کرده باشد.
FTP از رمزنگاری استفاده نمی کند. احراز هویت بر اساس نام کاربری و رمز عبور انجام می شود و همین باعث می شود که انتقال داده از طریق پروتکل انتقال فایل FTP در برابر روش های مختلف شنود (eavesdropping) و جعل هویت، آسیب پذیر باشد.
کسب و کارها از FTP برای انتقال فایل از یک سیستم به سیستم دیگر و وبسایت ها برای آپلود و دانلود فایل ها از سرورهای وبسایت استفاده می کنند. همچنین، این پروتکل به صفحات جدید که توسط توسعه دهنده ایجاد می شود، اجازه نمایش در اینترنت را می دهد. در واقع، این صفحات وب به سرور منتقل می شوند تا دیگران به آنها دسترسی داشته باشند.
از کاربردهای دیگر FTP می توان به موارد زیر اشاره کرد:
بکآپ گیری – پروتکل FTP برای بک آپ گیری داده ها از یک سیستم به یک سرور پشتیبان نیز قابل استفاده است.
تکثیر – فرآیند تکثیر داده به کپی داده ها از یک سیستم به سیستم دیگر گفته می شود. رویکرد این فرآیند برای ارائه دسترسی و انعطاف پذیری بالا، جامع تر است و استفاده از FTP می تواند باعث ساده سازی این امر شود.
بارگذاری داده و دسترسی به آنها – این پروتکل برای دسترسی میزبانی وب اشتراکی و خدمات ابری، به عنوان مکانیزمی برای بارگذاری داده ها بر روی یک سیستم ریموت استفاده می شود.
FTP client چیست؟
FTP client، ابزاری است که بین یک کامپیوتر هاست و یک سرور FTP ریموت ارتباط برقرار می کند. یک FTP client شرایط لازم برای انتقال دوجهته داده ها و فایل ها بین دو کامپیوتر از طریق یک شبکه TCP یا یک اتصال اینترنتی را فراهم می کند.
از معروف ترین FTP client می توان به موارد زیر اشاره کرد:
FileZilla. این FTP client برای ویندوز، macOS و لینوکس رایگان است و از FTP، FTPS و SFTP پشتیبانی می کند.
Transmit. یک FTP client برای macOS است که از FTP و SSH پشتیبانی می کند.
WinSCP. یک FTP client برای ویندوز است که از FTP، SSH و SFTP پشتیبانی می کند.
WS_FTP. یکی دیگر از FTP client های ویندوز که از SSH پشتیبانی می کند.
FTP Server چیست؟
FTP Server کامپیوتری است که در ابتدا همه فایل ها در آن آپلود می شوند. هر سرور دارای یک آدرس FTP است که کاربر می تواند با یک TCP/IP از طریق یک مرورگر یا یک FTP client از آن بازدید کند.
سرور به بازدید کننده اجازه دانلود و آپلود فایل ها را می دهد.
شماره پورت FTP چیست؟
پروتکل FTP از دو پورت مختلف برای برقراری اتصال و انتقال داده استفاده می کند. اولین پورت، پورت 21 است که برای ارسال دستورات لازم برای کلاینت و سرور استفاده می شود. پورت دوم، پورت 20 است که انتقال داده ها از طریق آن انجام می شوند. زمانی که کاربر درخواست خود را ارسال می کند، برقراری ارتباط با سرور از طریق پورت 21 انجام می شود و فایل های درخواستی نیز از پورت 20 برای او ارسال می شوند.
نحوه کار پروتکل انتقال فایل FTP
FTP یک پروتکل سرویس گیرنده – سرویس دهنده است که بر پایه دو کانال ارتباطی بین دو سیستم کار می کند: یک کانال فرمان ارتباط و یک کانال داده برای انتقال محتوای فایل.
یک کاربر معمولاً برای دسترسی به فایل باید وارد سرور FTP شود. البته برخی از سرورها، محتوای خود را بدون نیاز به ورود به سیستم در دسترس قرار می دهند، که این نوع انتقال تحت عنوان anonymous FTP شناخته می شود.
هنگامی که کاربر درخواست دانلود فایلی را دارد، FTP client ارتباط خود را با سرور آغاز می کند. یک سرویس گیرنده یا همان کلاینت، با استفاده از پروتکل FTP می تواند عملیاتی مانند آپلود، دانلود، حذف، تغییر نام، انتقال یا کپی را روی فایل ها انجام دهد.
جلسات FTP دارای دو حالت فعال و غیر فعال هستند:
حالت فعال. پس از اینکه یک کلاینت با ثبت درخواست کانال فرمان، جلسه را آغاز کرد، سرور یک اتصال داده به کلاینت ایجاد می کند و انتقال داده شروع می شود.
حالت غیر فعال. در شرایطی که کلاینت نمی تواند اتصال را بپذیرد، مانند زمانی که توسط فایروال مسدود می شود، باید از حالت غیرفعال استفاده شود. در این حالت، سرور یک پورت باز می کند و به صورت غیرفعال، عمل listening را انجام می دهد و با این کار به کلاینت ها اجازه می دهد به آن متصل شوند.
اتصال غیرفعال امن تر است و مدیران فناوری اطلاعات این حالت را بیشتر ترجیح می دهند چون اتصال داده از FTP client به FTP server ایجاد می شود.
3 روش رایج استفاده از پروتکل FTP
مرورگر وب: برای دانلود فایل از سرورهایی که سایت های FTP ارائه می دهند، به نرم افزار یا کلاینت خاصی نیاز ندارید.
GUI FTP client: این برنامه ها امکان اتصال و سپس ارسال فایل از طریق پروتکل FTP را فراهم می کنند.
Command-line FTP: سیستم عامل های اصلی با خط فرمان به قابلیت های FTP client مجهز هستند.
انواع پروتکل FTP
پورت | توضیحات | نوع |
– | این پروتکل نیازی به نام کاربری یا رمز عبور و رمزنگاری ندارد. | Anonymous FTP |
21 | همان FTP که نیاز به نام کاربری و رمز عبور دارد. | Password-protected FTP |
990 | همان FTP است و تنها تفاوت آنها این است که در FTPS برای امنیت بالاتر، همه چیز رمزنگاری انجام می شود. | FTP Secure (FTPS) |
21 | FTPES به عنوان امن ترین اتصال FTP شناخته می شود و تفاوت آن با FTPS در نحوه و زمان رمزنگاری است. | FTPES |
22 | این پروتکل شامل اجزای امنیتی SSH است و برای انتقال فایل های بزرگ استفاده می شود. | SFTP |
مزایا و معایب پروتکل انتقال فایل FTP
از مزایای مهم پروتکل FTP می توان به موارد زیر اشاره کرد:
- انتقال سریع فایل ها
- پشتیبانی از هاست های متعدد
- امکان انتقال فایل های بزرگ با حجم زیاد
- امکان زمان بندی پروسه انتقال فایل
- امکان از سرگیری فرآیند انتقال فایل در صورت هر گونه اشکال و قطعی در ارتباط
- ایجاد صف از فایل های در حال انتقال توسط FTP client
از معایب پروتکل FTP می توان به موارد زیر اشاره کرد:
- پایین بودن امنیت سرور FTP
- عدم پشتیبانی مرورگرهای اصلی مانند کروم و فایرفاکس از FTP
- عدم رمزگذاری اطلاعات کاربری
- امکان وجود فایل های مضر در برخی از سرورها
- قدیمی بودن پروتکل و امکان مسدود شدن برخی اتصالات از طرف فایروال ها
- نیاز به حافظه و تلاش بیشتر برای برنامه نویسی درست به خاطر سخت بودن خطایابی
آشنایی با دستورات و پاسخ های مربوط به پروتکل انتقال فایل FTP
برخی از دستورات پرکاربرد FTP
USER – این دستور نام کاربری را به سرور ارسال می کند.
PASS – این دستور رمز عبور کاربر را به سرور ارسال می کند.
CWD – این دستور به کاربر اجازه می دهد برای عملیات ذخیره سازی و بازیابی با یک دایرکتوری یا دیتاست متفاوت کار کند البته بدون این که نیازی به تغییر اطلاعات کاربری باشد.
RMD – این دستور باعث می شود که دایرکتوری مشخص شده حذف شود.
PWD – این دستور نام دایرکتوری فعلی را به عنوان پاسخ برمی گرداند.
RETR – این دستور باعث راه اندازی اتصال داده توسط هاست می شود و ارسال فایل درخواستی از جانب سرور می شود.
STOR – این دستور، فایل موردنظر را در دایرکتوری فعلی هاست ذخیره می کند.
LIST – این دستور، درخواستی برای نمایش لیست تمام فایل های موجود در دایرکتوری فعلی ارسال می کند.
ABOR – این دستور به سرور می گوید که فرمان قبلی سرویس FTP و هرگونه انتقال داده مرتبط را لغو کند.
برخی از پاسخ های FTP
200 – عملیات با موفقیت انجام شد.
530 – ورود ناموفق است.
331 – نام کاربری صحیح است و باید رمز عبور را وارد کنید.
225 – اتصال داده باز است اما هیچ انتقالی در حال انجام نیست.
551 – اقدام درخواستی لغو شد.
502 – دستور اجرا نشد.
503 – توالی بدی از دستورات اجرا شده است.
504 – دستور موردنظر برای این پارامتر اجرا نشده است.
سخن آخر
هدف از تهیه این مقاله، ارائه اطلاعات جامع تر در مورد پروتکل FTP بود. ارسال و دریافت فایل از یک سرور FTP، از مهم ترین کاربردهای این پروتکل است. همچنین، به عنوان یک توسعه دهنده وب، برای دسترسی به وبسایتی که مدیریت می کنید باید از یک FTP client استفاده کنید که کار با آن نیز آسان است.
سوالات متداول:
چرا پروتکل FTP امنیت پایینی دارد؟
تمام داده ها و فایل هایی که از طریق این پروتکل منتقل می شوند، مبتنی بر متن هستند و رمزنگاری نمی شوند که همین باعث کاهش امنیت این پروتکل شده است.
ممنونم.
از توجهتون سپاس گزاریم.