การเข้าสู่ระบบ FTP ทำงานได้ แต่การแสดงรายการโฟลเดอร์ค้าง: ทำไม
การเข้าสู่ระบบ FTP และการแสดงรายการโฟลเดอร์ใช้การเชื่อมต่อสองแบบที่ต่างกัน เมื่อรายการค้าง ให้ตรวจที่อยู่ข้อมูลแบบพาสซีฟและช่วงพอร์ต ไม่ใช่รหัสผ่าน
ชื่อผู้ใช้ใช้ได้ รหัสผ่านใช้ได้ และไคลเอนต์บอกว่าเชื่อมต่อแล้ว จากนั้นมันรอการแสดงรายการโฟลเดอร์หรือการถ่ายโอนไฟล์ครั้งแรกอย่างไม่มีที่สิ้นสุด และไม่มีอะไรในข้อมูลรับรองที่อธิบายเรื่องนี้ FTP เปิดการเชื่อมต่อที่สองสำหรับทุกรายการและทุกไฟล์ และการเชื่อมต่อที่สองนั้นคือสิ่งที่ล้มเหลว การเข้าสู่ระบบพิสูจน์เพียงว่าบทสนทนาแรกทำงานได้
ทำการตรวจตามลำดับ แต่ละข้อตัดชั้นที่แตกต่างกันออกไป ดังนั้นหยุดที่ข้อแรกที่พบความผิดปกติ
แยกการเชื่อมต่อสองแบบออกจากกันก่อน
การเชื่อมต่อควบคุมนำคำสั่งและคำตอบบนพอร์ตที่เซิร์ฟเวอร์ฟังอยู่ การเชื่อมต่อข้อมูลนำรายการโฟลเดอร์หรือเนื้อไฟล์ และในโหมดพาสซีฟเซิร์ฟเวอร์จะเลือกปลายทางของตนและประกาศในคำตอบ PASV หรือ EPSV การอนุญาตพอร์ต 21 ไม่ได้บอกอะไรเลยว่าพอร์ตข้อมูลเข้าถึงได้หรือไม่ ซึ่งเป็นเหตุผลว่าทำไมการเข้าสู่ระบบจึงสำเร็จในขณะที่ทุกรายการหมดเวลา คู่มือของ WinSCP เกี่ยวกับโหมด FTP อธิบายการแยกนี้และข้อกำหนดเครือข่ายของมัน
หากไคลเอนต์อยู่หลัง VPN เส้นทางข้อมูลจะผ่านอุโมงค์เดียวกันแต่ไม่จำเป็นต้องผ่านนโยบายเดียวกัน
อ่านที่อยู่ในคำตอบ PASV
เรียกใช้ไคลเอนต์แบบละเอียดและอ่านคำตอบแทนการเดา curl -v ftp://user@host/ พิมพ์บรรทัด PASV พร้อมที่อยู่และพอร์ตที่เซิร์ฟเวอร์ต้องการ และไคลเอนต์จะเชื่อมต่อกับที่อยู่นั้นต่อไป หากเป็นที่อยู่ส่วนตัวที่ไม่มีความหมายฝั่งไคลเอนต์ของอุโมงค์ การเชื่อมต่อข้อมูลจะไปไม่ถึงไหนในขณะที่ช่องควบคุมยังคงปกติ
เปรียบเทียบที่อยู่นั้นกับที่อยู่ที่ไคลเอนต์เข้าถึงจริง ความไม่ตรงกันคือคำตอบ และมักมาจาก NAT หรือจากเซิร์ฟเวอร์ที่กำหนดค่าด้วยที่อยู่ภายใน
ตรวจช่วงพอร์ตและนโยบายอุโมงค์
เซิร์ฟเวอร์พาสซีฟจัดสรรพอร์ตข้อมูลจากช่วงที่กำหนด และช่วงนั้นต้องได้รับอนุญาตผ่าน VPN และไฟร์วอลล์ใด ๆ ในเส้นทาง นโยบายที่อนุญาตเฉพาะ 21 คือ นโยบายสำหรับการเข้าสู่ระบบเท่านั้น ยืนยันช่วงกับผู้ที่ดูแลเซิร์ฟเวอร์ แล้วทดสอบหนึ่งพอร์ตจากช่วงนั้นแทนการสันนิษฐานว่าทั้งช่วงทำงานเหมือนกัน
ช่องควบคุมที่เข้ารหัสทำให้ยากขึ้น เพราะอุปกรณ์กลางไม่สามารถเขียนที่อยู่ที่ประกาศใหม่ระหว่างทางได้อีก
รู้ว่าเมื่อใด EPSV หรือทางเลือกสำรองช่วยได้
EPSV ส่งคืนพอร์ตโดยไม่มีที่อยู่แยก ซึ่งขจัดความล้มเหลวจากที่อยู่ผิดเมื่อทั้งสองฝั่งรองรับ ไคลเอนต์บางตัวยังสามารถสั่งให้เพิกเฉยต่อที่อยู่ที่ประกาศและใช้ปลายทางของการเชื่อมต่อควบคุมซ้ำได้ ทั้งสองเป็นเครื่องมือที่ถูกต้องซึ่งมุ่งเป้าไปที่โครงสร้างเฉพาะ ไม่ใช่การแก้ปัญหาแบบเหมารวม
อย่าปิดใช้งาน TLS เพียงเพื่อให้เครื่องมือช่วยตรวจสอบเซสชัน นั่นแลกโปรโตคอลที่ทำงานได้กับแบบจำลองภัยคุกคามที่พัง
ยืนยันด้วยรายการและการถ่ายโอน
หลังจากนโยบายที่อยู่หรือพอร์ตเปลี่ยน ให้เปิดเซสชันใหม่ผ่านเส้นทาง VPN เดียวกันและแสดงรายการโฟลเดอร์ จากนั้นถ่ายโอนไฟล์เล็ก เพราะรายการและการถ่ายโอนอาจใช้เส้นทางโค้ดต่างกันบนเซิร์ฟเวอร์บางตัว ตรวจบันทึกไคลเอนต์สำหรับการเชื่อมต่อข้อมูลไปยังที่อยู่และพอร์ตที่คาดไว้ และ ยืนยันว่าไบต์มาถึงแล้ว.
แยก FTP, FTPS และ SFTP ให้ชัดในหัวขณะทำสิ่งนี้ การเปลี่ยนพอร์ตพาสซีฟไม่ใช่การตั้งค่า SFTP และการแก้ไขไม่ได้ใช้ข้ามโปรโตคอล