คำอธิบายที่ชัดเจนและทางเทคนิคเกี่ยวกับปัญหาเซสชัน FTP พร้อมกันหลายครั้งเมื่อล็อคพอร์ตข้อมูลไปที่พอร์ตเดียวเท่านั้นคือสิ่งที่ฉันสนใจมากที่สุดในการรู้ในเชิงลึก มันสามารถทำงานได้เมื่อไหร่มันจะไม่ทำงานทำไมมันถึงไม่แนะนำ ฯลฯ
นี่จะเป็นการคาดเดาที่รุนแรงเพราะฉันยังไม่ได้ทดสอบคุณควรลองด้วยตัวเองและดูว่ามีปัญหาอื่น ๆ ที่ฉันอาจพลาดไปหรือไม่
ฉันคิดว่าคุณสามารถ จำกัด ช่วงพอร์ตเรื่อย ๆ กับพอร์ตเดียว ในความเป็นจริงคุณสามารถเห็นในคำถามนี้ว่าช่วงพอร์ตขนาดเล็กที่ใช้ในการปฏิบัติ ในทางทฤษฎีเพื่อรองรับการเชื่อมต่อหลาย ๆ อย่างพร้อมกันคุณต้องใช้ค่า 4 ค่า: โลคัล IP, พอร์ตโลคัล, IP แบบรีโมต, พอร์ตแบบรีโมตจะไม่ซ้ำกัน นี่คือวิธีที่คุณแยกแยะระหว่างการเชื่อมต่อที่แตกต่างกัน
หากคุณล็อกพอร์ตบนเซิร์ฟเวอร์ของคุณเป็นหนึ่งค่าเดียวตัวแปรที่เหลือเพียงอย่างเดียวคือพอร์ตที่ไคลเอ็นต์ใช้ นี่ไม่ใช่ปัญหาตราบใดที่ไคลเอนต์มีพอร์ตชั่วคราวขนาดใหญ่พอให้เลือก เว้นแต่ว่าคุณกำลังทำ NAT หนักอยู่คุณไม่ต้องกังวลเกี่ยวกับเรื่องนี้ ตอนนี้ได้รับการเตือนว่านี่จะเป็นเรื่องทางทฤษฎีอย่างหมดจด : ถ้าคุณใช้หลายพอร์ตบนเซิร์ฟเวอร์ของคุณคุณสามารถคูณจำนวนการเชื่อมต่อพร้อมกันตามสมมุติฐานด้วยการเปิดใช้งานnumber of ports in range
การเชื่อมต่อต่อหนึ่งพอร์ตฝั่งไคลเอ็นต์ แต่มันจะไม่เกิดขึ้นในทางปฏิบัติเพราะฉันสงสัยว่ามีการใช้งานไคลเอนต์ FTP ที่จะสนับสนุนสิ่งนี้ (เพราะมันไม่สมเหตุสมผล) นอกจากนี้หากลูกค้าต้องแชร์พอร์ตชั่วคราวของเขาด้วยวิธีนี้และไม่สามารถเปิดพอร์ตใหม่ได้เขาก็มีปัญหาที่รุนแรงกว่ามากในการจัดการ ดังนั้นจากมุมมองนี้คุณควรปลอดภัยโดยใช้พอร์ตเดียว
ลองคิดว่าทำไมพอร์ตเดียวอาจจะไม่เพียงพอ
ก่อนอื่นฉันสามารถหาสถานการณ์ที่การใช้งานเซิร์ฟเวอร์ FTP ที่บั๊กจริงๆใช้หมายเลขพอร์ตท้องถิ่นเป็นวิธีในการระบุการถ่ายโอนข้อมูลลูกค้า ฉันไม่คิดว่า FTPd ที่เหมาะสมจะทำเช่นนั้น
ปัญหาที่แท้จริง ( ใช่คุณสามารถปฏิเสธทั้งหมดข้างต้นเป็นพูดนอกเรื่องสำคัญ ;-)) คือว่าช่วงพอร์ตแฝงอยู่ในช่วงที่ไม่ได้รับการยกเว้น
ซึ่งหมายความว่าคุณหมายเลขพอร์ตที่เลือกไม่ได้สงวนไว้ ต่อ seและในความเป็นจริงผู้ใช้กระบวนการใด ๆ (ไม่จำเป็นต้องรากสิทธิพิเศษ) สามารถคว้ามันก่อนที่เซิร์ฟเวอร์ FTP ของคุณไม่ หากคุณมีพอร์ตให้เลือกมากมายคุณก็จะได้พอร์ตสุ่มฟรี หากคุณผูกพันที่จะใช้เพียงอย่างเดียวและถูกใช้ไปแล้วคุณจะไม่สามารถจัดการการถ่ายโอนได้อย่างถูกต้อง
ขออภัยถ้าคำตอบดูเหมือนจะเป็นการเก็งกำไรเกินไป พูดตามตรงฉันพยายามอย่างหนักเพื่อหาเหตุผลว่าทำไมคุณไม่ควรใช้พอร์ตเดียวและนอกเหนือจากบิตสุดท้ายแล้วฉันไม่สามารถคิดถึงหลักฐานที่แข็งกร้าวได้ อย่างไรก็ตามคำถามที่น่าสนใจและท้าทายที่คุณก่อขึ้น