ชื่อผู้ใช้ใช้ได้ รหัสผ่านใช้ได้ และไคลเอนต์บอกว่าเชื่อมต่อแล้ว จากนั้นมันรอการแสดงรายการโฟลเดอร์หรือการถ่ายโอนไฟล์ครั้งแรกอย่างไม่มีที่สิ้นสุด และไม่มีอะไรในข้อมูลรับรองที่อธิบายเรื่องนี้ 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 และการแก้ไขไม่ได้ใช้ข้ามโปรโตคอล

บทความที่เกี่ยวข้อง