2. port 21 เป็น control port ใช้รับ-ส่ง username , password กับ client
3. port 20 เป็น data port ใช้รับ-ส่ง data กับเครื่อง client
4. ใช้ port 21 กับ 20 ก็ต่อเมื่อ server เราเป็น ftp server แบบ active ftp ซึ่ง ftp server แบบนี้ในโลกเหลืออยู่ไม่มาก ทีไม่มีแมวที่ไหนใช้เพราะ ftp แบบนี้มีข้อเสียเพราะขั้นตอน establish data port จะเริ่มต้นจากทาง server จึงต้อง configre firewall 2 ฝั่ง คือ firewall ฝั่ง server ต้องทำการเปิด port 21 ส่วน firewall ฝั่ง client ต้องทำการเปิด high port ให้server connect เข้ามาได้ซึ่งเป็นการกระทำที่งี่เง่าเกินจะรับได้(แต่มหาวิทยาลัยก็ยังนิยมสอนว่าใช้ 2 port นี้)
5. ในปัจจุบัน ftp server ส่วนมากเป็น ftp server แบบ passive ftp คือ ใช้ port 21 เป็น control port และ port > 1024 ที่สุ่มขึ้นมาทำเป็น data port โดยการ establish connection ทั้ง control port และ data port จะเริ่มที่ client จึงสะดวกกว่าเดิมมากเพราะการ configure firewall จะทำที่ฝั่ง server อย่างเดียว คือ เปิด port 21 ที่firewall ฝั่ง server อย่างเดียว(ส่วน high port ที่ฝั่ง server ไม่ต้องเปิด เพราะมันจะเห็น data port ที่client เรียกเข้ามาเป็น related port ซึ่งเป็น port ที่ต่อเนื่องจาก connection แรกจึง allow ให้ผ่านได้ ที่ทำงี้ได้เนื่องจาก firewall ในปัจจุบันเป็น statefull firewall)
*ปล. ถ้า ใช้เป็น sftp จะใช้แต่ port 22 เป็นทั้ง control port และ data port
เฮ้อ....
เรื่องที่อยากชี้แจง
1. post ในลักษณะนี้ มันหงุดหงิดคนอ่าน(เนื้อหาใช้ได้ แต่คำพูดมันอ้อนไปหน่อย)
"20 กะ 21 ใช้ vsftpd ส่วน 22 มันใช้ sftp ซึ่งเรียกใช้ ssh มันคนละโปรแกรมกัน config บน vsftpd แล้วจะให้ ssh ทำงานแบบเดียวกันไม่ได้หรอกครับ"
เพิ่มเติม
2. port 21 เป็น control port ใช้รับ-ส่ง username , password กับ client
3. port 20 เป็น data port ใช้รับ-ส่ง data กับเครื่อง client
4. ใช้ port 21 กับ 20 ก็ต่อเมื่อ server เราเป็น ftp server แบบ active ftp ซึ่ง ftp server แบบนี้ในโลกเหลืออยู่ไม่มาก ทีไม่มีแมวที่ไหนใช้เพราะ ftp แบบนี้มีข้อเสียเพราะขั้นตอน establish data port จะเริ่มต้นจากทาง server จึงต้อง configre firewall 2 ฝั่ง คือ firewall ฝั่ง server ต้องทำการเปิด port 21 ส่วน firewall ฝั่ง client ต้องทำการเปิด high port ให้server connect เข้ามาได้ซึ่งเป็นการกระทำที่งี่เง่าเกินจะรับได้(แต่มหาวิทยาลัยก็ยังนิยมสอนว่าใช้ 2 port นี้)
5. ในปัจจุบัน ftp server ส่วนมากเป็น ftp server แบบ passive ftp คือ ใช้ port 21 เป็น control port และ port > 1024 ที่สุ่มขึ้นมาทำเป็น data port โดยการ establish connection ทั้ง control port และ data port จะเริ่มที่ client จึงสะดวกกว่าเดิมมากเพราะการ configure firewall จะทำที่ฝั่ง server อย่างเดียว คือ เปิด port 21 ที่firewall ฝั่ง server อย่างเดียว(ส่วน high port ที่ฝั่ง server ไม่ต้องเปิด เพราะมันจะเห็น data port ที่client เรียกเข้ามาเป็น related port ซึ่งเป็น port ที่ต่อเนื่องจาก connection แรกจึง allow ให้ผ่านได้ ที่ทำงี้ได้เนื่องจาก firewall ในปัจจุบันเป็น statefull firewall)
*ปล. ถ้า ใช้เป็น sftp จะใช้แต่ port 22 เป็นทั้ง control port และ data port
6. ตั้งแต่ทำงานมายังไม่เคยเห็นคนในที่ทำงานหรือพวกที่มีความรู้เรื่อง network ท่านใดเป็นปลื้มกับการใช้ftp เพียวๆเลยนะครับ ถ้าไม่จำเป็นต้องใช้จริงๆจะไม่ค่อยใช้กัน เพราะว่ามันสามารถใช้โปรแกรมดักเอา username , password , data ได้ ผมจึงไม่เคยใช้ ftp แบบธรรมดาครับ จึงเรียนมาเพื่อทราบ
*ปล. ขอเชิญชวนให้ใช้ ftp over ssh นะครับ เชื่อเถอะครับ ไม่โดน hack อาจจะยังไม่เห็นประโยชน์