آموزش کامپیوتر

با سلام خدمت شما کاربران گرامی - اگر از مطالب وبلاگ خوشتان آمد نظرات و پیشنهادات خود را برای ما ارسال نمایید

پورت ۲۱

 تبلیغات

یکی از سایت های پر سابقه کسب درامد در ایران

- یه نکته راجع به این درس

دلم می‌خواست که برای این درس فقط چند تا لینک معرفی کنم که خودتون برید و درس ftp رو از همون‌ لینک‌ها یاد بگیرین. دلیلش هم کاملا واضحه! علتش اینه که در مورد این درس خاص این‌قدر مقاله کامل تو اینترنت هست که اگه یه سال هم بشینین هر روز بخونیدشون، تموم نمیشه. ولی به هر حال به خاطر اینکه قرار شده تمام مطالب مرتبط با هک رو گام به گام همین‌جا براتون توضیح بدم، این درس تابلو! رو هم می‌گم. ولی ازتون می‌خوام که حتما یک search بکنین و مقاله‌های مختلف راجع به این درس رو خودتون هم مطالعه کنید. یاد گرفتن ftp از نون شب هم واجب‌تره :)


- پورت ۲۱ چیست؟

پورت ۲۱ رو پورت ftp می‌گن. ftp مخفف عبارت file transfer protocol است یعنی پروتکل انتقال فایل. کاربرد این پروتکل و این پورت از زمانی وجود داره که حتی وب (پورت ۸۰ ) هم چندان عمومی نشده بود. پس می‌تونم بگم که یه پروتکل باستانی هستش. وقتی می‌خواهید با یک سرور از طریق این پروتکل صحبت کنید، باید مطمئن بشین که سرویس مربوط به ftp روی اون کامپیوتر فعال باشه. به عبارت دیگه باید یک ftp server روی اون کامپیوتر در حال اجرا باشه. حالا شما با اون کامپیوتر می‌خواین ارتباط برقرار کنین، پس شما باید از یک ftp client استفاده کنید. پس شما کلاینت هستید و دستگاه مقابل سرور!
حالا شاید بپرسین که کار ftp چیست؟
ftp برای انتقال فایل به کار میره و این انتقال فایل در دو جهت ممکنه که upload و download گفته میشه. برای اینکه این‌ها رو قاطی نکنید با هم فرض کنید که کامپیوتر سرور بالای سر شما قرار گرفته، پس وقتی فایل رو از اون می‌گیرید، فایل به سمت پایین می‌آد (download) و وقتی فایل رو برای سرور می‌فرستید، حالت برعکس می‌باشد و بهش می‌گیم، upload کردن. و هر دو عبارت نوعی انتقال فایل محسوب میشه. دقت کنید که انتقال فایل از طریق پروتکل‌های دیگه‌ای هم امکان‌پذیره مثل web و ... ولی ما بحث‌مون همین پروتکل ftp است.
عبارت دیگه‌ای که راجع به این پورت باید یاد بگیرید، عبارت anonymous است. برای توضیح این عبارت اول باید بگم که وقتی شما می‌خواهید با سرور ارتباط برقرار کنید، همین‌طوری کشکی که نیس! برای ارتباط با سرور از شما username و password پرسیده می‌شه و اگه درست باشه می‌تونین فایل‌ها رو upload و download کنید و تغییر بدید ( پس می‌بینید که این پروتکل پروتکل حساسی است و اگه هک بشه خیلی کارها میشه باهاش کرد). این حالت که گفتم در حالتی ممکنه که شما username و password داشته باشید. اما گاهی پیش می‌آد که username و password نداریم و می‌خوایم با پورت ftp یک سرور یا سایت ارتباط برقرار کنیم. در این حالت معمولا فقط اجازه download به ما داده میشه و اجازه upload و یا اعمال تغییرات در فایل‌ها رو نداریم و اونو حالت anonymous یا ناشناس می‌گن. در این حالت وقتی از ما username خواسته میشه، عبارت anonymous را تایپ می‌کنیم و بعد که پسورد پرسیده میشه، شما باید E-mail تون رو وارد کنید، ولی من می‌گم که به جای E-mail واقعی تون یه E-mail الکی بنویسین مثلا alaki@dolaki.com !!
آدرسی که برای ftp با یه سرور استفاده می‌کنیم به چه شکلی است؟
آدرسی که استفاده می‌کنیم بستگی به سرور داره ولی معمولا ساختار ثابتی داره. ( اگه یادتون باشه واسه web مثلا می‌نوشتیم، www.far30.com ) حالا برای ftp می‌نویسیم، ftp.far30.com پس مثلا برای سایت sazin.com می‌نویسیم، ftp.sazin.com که آدرس ftp سایت میشه.


- چطوری یه سرور پیدا کنم که سرویس ftp روی اون فعال باشه؟

این سوال دو حالت داره:
۱- می‌خواهید به صورت anonymous وارد بشین یعنی username و password ندارین. برای این حالت می‌تونین از خیلی از سایت‌ها استفاده کنید. مثلا می‌تونین از ftp.microsoft.com استفاده کنید یا سایت‌های دیگه.
۲- اگه می‌خواید به صورت غیر anonymous کار کنید، حیطه عمل‌تون محدود به سایت‌هایی میشه که username و password واسه اون دارین. مثلا اگه شما سایتی روی اینترنت داشته باشید ( چه سایت پولی و چه سایت مجانی مثلا در netfirms و geocities و ... ) به شما یک آدرس ftp و یک username و password تعلق می‌گیره که از طریق اون کار می‌کنید. اگه سایت ندارید، می‌تونید یک سایت مجانی درست کنید. مثلا می‌تونید از سایت geocities.com که متعلق به یاهو است استفاده کنید. یا از سایت‌های netfirms.com یا freeservers.com و... ولی به‌هر حال در یکی از این‌ها ثبت‌نام کنید و username و password بگیرید. آدرس‌های ftp آنها هم که به‌صورت ftp.geocities.com یا ftp.netfirms.com و... خواهد بود. (از من نخواین که طریقه ثبت‌نام در این سایت‌ها رو هم به شما یاد بدم! کار خیلی راحتیه.)


- با پورت ۲۱ صحبت کنیم

فرض کنید من از یک سایت فرضی استفاده می‌کنم که آدرس ftp اون باشه: ftp.somesite.com و username من باشه ali1000 و پسوردم هم یه چیزه دیگه باشه. حالا می‌خوام از طریق پورت ۲۱ با این سایت ارتباط برقرار کنم. در مورد این پورت دیگه از nc و telnet استفاده نمی‌کنم، بلکه از برنامه‌ای که در تمام ویندوز‌ها هست، به اسم ftp کمک می‌گیرم. در command prompt می‌نویسم:

ftp ftp.somesite.com

و جواب می‌شنوم:

Connected to somesite.com.
220 somesite Microsoft FTP Service (Version 5.0).
User (somesite.com:(none)): 

دقت کنید که این سایت ftp server اش از نوع Microsoft است، پس این سرور از سیستم‌عامل ویندوز استفاده می‌کنه ( دونستن این نکات لازم نیست، ولی من توصیه می‌کنم که همیشه به جزئیات توجه کنید) دقت کنید که از من username رو می‌خواد، پس می‌نویسم: ali1000 و Enter رو فشار می‌دم. جواب می‌آد:

331 Password required for ali1000.
Password:

حالا ازم پسورد می‌خواد و پسورد رو تایپ می‌کنم. جواب می‌شنوم:

230 User ali1000 logged in.
ftp>

این نشون میده که تونستم با پورت ۲۱ کامپیوتر مقابل ارتباط برقرار کرده و اصطلاحا یک session یا نشست! باهاش داشته باشم. اگه username یا password اشتباه بود، اون موقع می‌گفت:

530 User ali1000 cannot log in.
Login failed.
ftp>

من فرض می‌کنم که session با موفقیت برقرار شده، حالا تایپ می‌کنم:

ftp> help

و جواب می‌شنوم:

Commands may be abbreviated.  Commands are:

!               delete          literal         prompt          send
?               debug           ls              put             status
append          dir             mdelete         pwd             trace
ascii           disconnect      mdir            quit            type
bell            get             mget            quote           user
binary          glob            mkdir           recv            verbose
bye             hash            mls             remotehelp
cd              help            mput            rename
close           lcd             open            rmdir

این‌ها لیست دستوراتی است که می‌تونید استفاده کنید. من فقط اون‌هایی که به صورت bold مشخص کردم رو توضیح خواهم داد. بقیه دستورات کمتر به کار می‌رن.


- دستورات پایه برای این پورت کدامند؟

+ دستور help و ?
دستور help رو همین الان استفاده کردیم. دستور ? هم معادل اونه.

+ دستور dir و ls
این دو دستور نشون می‌دن که در محل فعلی در سرور چه فایل‌ها و فولدر (دایرکتوری) هایی وجود دارد. فرق‌شون اینه که وقتی از dir استفاده می‌کنید، اطلاعات بیشتری علاوه بر نام فایل‌ها و فولدر‌ها به ما میده. من نوشتم dir و جواب شنیدم:

200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
12-28-02  02:18AM       < DIR>          db
12-28-02  02:19AM       < DIR>          Special
03-08-03  03:18AM       < DIR>          www
226 Transfer complete.
ftp: 135 bytes received in 0.02Seconds 6.75Kbytes/sec.

ملاحظه می‌فرمایید که سه تا فولدر (دایرکتوری) اینجا هست. (اگه با دستور dir آشنا نیستید، یک کتاب داس بخونید). این‌ها فولدر هستند چون عبارت < DIR> جلوی اون‌ها نوشته شده است. نام این فولدرها عبارتند از db و special و www

+ دستورات مرتبط با کار روی فولدرهایی که روی سرور (نه روی کامپیوتر خودمون) هستند، عبارنتد از:
cd یا chdir ==> این دستور برای وارد شدن داخل یک فولدر به کار می‌ره.
mkdir ==> این دستور برای ساختن یک فولدر جدید به کار میره.
rmdir ==> این دستور برای پاک کردن یک فولدر موجود به کار میره (به شرطی که آن فولدر خالی باشد)
برای کار با هر کدوم از این دستورات کافی است، دستور مورد نظر را نوشته و بعد از یک کاراکتر فاصله، نام فولدر را بنویسید، مثلا اگه بخوام وارد فولدر www بشم، می‌نویسم:

cd www

و جواب می‌شنوم:

250 CWD command successful.
ftp>

این جواب به آن معنی است که وارد فولدر (دایرکتوری) www شده‌ام. حالا دوباره دستور dir را استفاده می‌کنم و جواب می‌گیرم:

200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
12-28-02  02:18AM       < DIR>          _private
02-17-03  04:15PM                 61982 1.jpg
12-28-02  02:19AM       < DIR>          aspnet_client
12-28-02  02:19AM       < DIR>          cgi-bin
12-29-02  06:27PM                 11285 default.asp
12-28-02  02:19AM       < DIR>          images
12-28-02  02:18AM                  2494 postinfo.html
226 Transfer complete.
ftp: 1438 bytes received in 0.28Seconds 5.12Kbytes/sec.
ftp>

ملاحظه می‌کنید که سه‌ تا فایل و سه تا دایرکتوری داریم. اون‌هایی که جلوشون نوشته < DIR> دایرکتوری هستند و اونایی که این عبارت رو ندارند و جلوشون یه عدد نوشته شده ( که بیانگر حجم هر کدومشون هست ) فایل می‌باشند.
در مورد دستور cd اگه بنویسم .. cd به فولدر قبلی بر می‌گردیم، مثلا الان که تو فولدر www هستیم اگه .. cd رو بنویسم، یک فولدر به عقب برمی‌گردم ( به حالت قبل از ورود به www )
یه دستور دیگه هم راجع به فولدرها هست و اونم دستور pwd است. این دستور نشون میده که ما الان تو کدوم فولدر از فولدرهای سرور هستیم.

+ دستورات مرتبط با فایل‌ها عبارنتد از:
delete یا dele ==> این دستور برای پاک کردن یک فایل به کار می‌ره.
rename ==> این دستور برای عوض کردن نام یک فایل به کار می‌ره.
مثلا اگه بخوام فایل default.asp رو پاک کنم، می‌نویسم delete default.asp
اگه بخوام فایل default.asp رو به index.htm تغییر نام بدم، می‌نویسم rename default.asp index.htm

+ دستورات مرتبط با فولدرهای کامپیوتر خودمان:
اول دقت کنید که در مورد پورت ۲۱ وقتی می‌گوییم در کدام فولدر قرار داریم، این مسئله دو معنی داره. حالت اول محل فعلی ما روی سرور است. یعنی کجای سرور هستیم. تمام دستوراتی که راجع به فولدرها گفتم برای کار روی فولدرهای سرور است. حالت دوم محل فعلی ما در کامپیوتر خودمون است. فرض کنید که وارد فولدری در کامپیوتر سرور شده‌ایم والان می‌خوایم فایل را داون‌لود کنیم به کامپیوتر خودمون. برای اینکه فایل به فولدر درستی در کامپیوتر خودمون منتقل بشه، باید وارد یک فولدر خاص در کامپیوترمان بشیم. دستور مرتبط با اون دستور lcdاست. مثلا اگه بخوام وارد فولدر araz از درایو :C بشم، می‌نویسم:

lcd c:/araz




- دستورات اصلی (upload و download فایل) کدامند؟

قبل از اینکه این دستورات رو بگم، انواع فایل رو بگم:
==> فایل‌های ascii : فایل‌هایی که حالت متنی دارند، مثل فایل‌های txt و html و asp و php و rtf و ...
==> فایل‌های binary : فایل‌هایی که متنی نیستند، مثل فایل‌های گرافیکی، مولتی‌مدیا، database ، doc و ...

وقتی می‌خواهیم فایل رو داون‌لود یا upload کنیم، باید قبل از انتقال فایل نوع اون رو تنظیم کنیم. دو تا دستور برای این‌کار داریم:
+ دستور ascii یا asc : یعنی می‌خواهیم به صورت اسکی عمل انتقال انجام شود.
+ دستور binary یا bin : یعنی می‌خواهیم به صورت باینری عمل انتقال انجام شود.

+دستور prompt: وقتی تعداد زیادی فایل رو قرار باشه منتقل کنیم، و از دستور مربوط به upload یا download استفاده می‌کنیم، هر بار که فایلی می‌خواهد منتقل شود، از ما سوال می‌کند که آیا می‌خواهید این فایل منتقل شود یا نه. فرض کنید که می‌خواهید مثلا ۱۰۰ فایل رو منتقل کنید، در این موارد ۱۰۰ بار از شما این سوال پرسیده می‌شود. برای این‌که این حالت رو غیر فعال کنیم، می‌نویسیم prompt تا غیرفعال شود، اگه یه بار دیگه همین دستور رو بنویسیم، دوباره فعال میشه و قس‌علی‌هذا !

+ دستورهای مربوط به upload فایل:
دستور put: این دستور یک فایل رو از کامپیوتر ما به سرور منتقل می‌کنه (از فولدر فعلی کامپیوتر ما به فولدر فعلی کامپیوتر سرور). مثلا اگه بخوام فایلی به اسم ali.jpg رو upload کنم، اگه در حالت ascii باشم، اول باید به حالت binary تغییر حالت بدم و بعد بنویسم:

put ali.jpg

و جواب می‌شنوم:

200 PORT command successful.
150 Opening BINARY mode data connection for ali.jpg.
226 Transfer complete.
ftp: 21010 bytes sent in 0.02Seconds 1050.50Kbytes/sec.
ftp>

دستور mput: این دستور چند فایل رو upload می‌کند، مثلا اگه بخوام همه فایل‌های htm که اسمشون با کاراکتر s شروع میشه رو منتقل کنم، می‌تویسم (البته باید قبلش به حالت ascii تغییر حالت داده باشم):

mput s*.htm

+ دستورهای مربوط به download فایل:
دستور get: این دستور یک فایل رو از سرور به کامپیوتر ما منتقل می‌کنه (از فولدر فعلی سرور ما به فولدر فعلی کامپیوتر ما). مثلا اگه بخوام فایلی به اسم default.asp رو download کنم، می‌نویسم:

get default.asp

دستور mget: این دستور چند فایل رو download می‌کند، مثلا اگه بخوام همه فایل‌های htm که اسمشون با کاراکتر s شروع میشه رو منتقل کنم، می‌تویسم:

mget s*.htm




- چگونه کار را خاتمه دهیم؟

+ اول باید session را خاتمه دهیم. برای این‌کار می‌تونید از یکی از دو دستور close یا disconnect استفاده کنیم.
+ بعد، برای خروج از ftp باید از یکی از دو دستور quit یا bye استفاده کنیم.


- حالت anonymous چه فرقی با حالت بالا دارد؟

هیچ‌ فرقی در روش کانکت شدن، ندارد. تنها فرق در username و password است که به ترتیب، anonymous و e-mail رو استفاده می‌کنیم. و نیز همون‌طور که قبلا گقتم بعد از کانکشن به صورت anonymous اجازه upload یا اعمال تغییرات روی server رو نداریم.


- چه نرم‌افزارهای گرافیکی برای کار کار با ftp وجود دارد؟

نرم‌افزارهای گرافیکی زیادی برای این‌کار وجود دارند، مثل fetch برای کامپیوترهای Macintosh و نرم‌افزارهای WS_FTP و CuteFtp و WinFTP و... برای ویندوز که هیچ‌کدوم مفت نمی‌ارزند!!


- راحت‌ترین روش کار با این پورت به نظر شما چیست؟

راحت‌ترین روش ممکن، استفاده از web browser کامپیوترتون مثل internet explorer است! در این حالت دقیقا مثل این است که دارید با فولدرهای کامپیوتر خودتون کار می کنید. می‌تونید برای download فایل رو فایل مورد نظر دابل‌کلیک کنید و برای upload می‌تونید فایل رو از بیرون به مرورگر drag & drop یا copy & paste کنید!
+ اگه بخواین به صورت anonymous مثلا به سایت microsoft وارد شوید، کافی است در مرورگر بنویسید: ftp://ftp.microsoft.com و Enter را فشار دهید.
+ اگه بخواین به صورت غیر anonymous مثلا به سایت ftp.somesite.com که username شما برای آن سایت ali1000 است وارد شوید، در مرورگر می‌نویسید: ftp://ali1000@ftp.microsoft.com و Enter را فشار می‌دهید. در این حالت، پنجره‌ای باز شده و از شما پسورد می‌خواهد و شما پسورد را نوشته و بعد از تایید، وارد پورت ۲۱ اون کامپیوتر می‌شین.