อรุณสวัสดิ์ทุกคน,
ฉันโฮสต์เซิร์ฟเวอร์ FileZilla FTP (โหมดพาสซีฟ) บนเซิร์ฟเวอร์ WIN 2012 R2 ที่โฮสต์ใน MS Azure
การถ่ายโอน FTP โดยทั่วไปแล้วใช้งานได้ดี - การอัพโหลดและดึงข้อมูล FTP หลายครั้งทำงานเป็นประจำทุกวัน
ฉันได้เปิดพอร์ตขนาดใหญ่ที่สัมพันธ์กัน (จุดปลาย) บน Azure Portal / ด้านเพื่ออนุญาตให้ใช้โหมดแฝง
เป็นระยะ ๆ (โดยเฉลี่ยวันละ 2 ครั้ง) ฉันเห็นปัญหาการโอน FTP ดังนี้:
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file1
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file2
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file3
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071050
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> CWD dev_updates/Infrastructure/folder
8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 250 CWD successful. "dev_updates/Infrastructure/folder" is current directory.
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> PASV
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 227 Entering Passive Mode (104,40,Y,X,234,235)
8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 426 Connection closed; aborted transfer of ""
8/8/2016 9:10:01 AM - USER_FILEZILLA (62.154.Y.X)> disconnected.
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> Connected on port 21, sending welcome message...
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-FileZilla Server 0.9.57 beta
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220 Please visit https://filezilla-project.org/
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> USER USER_FILEZILLA
8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 331 Password required for
ตามที่กล่าวมามีการถ่ายโอน FTP หลายครั้งที่เกิดขึ้นในแต่ละวัน (อัตโนมัติ) และครอบคลุมช่วงพอร์ตมากกว่า 140+ พอร์ตที่กำหนดให้กับเซิร์ฟเวอร์ FileZilla FTP (ทำหน้าที่ในโหมดแฝง)
ฉันมี Wireshark capture ที่ทำงานบน VM ที่โฮสต์ใน Azure; ฉันเห็นได้จาก Wireshark ว่าเหตุการณ์ "426 การเชื่อมต่อปิด" ถูกจับคู่โดย RST ที่มาจาก VM ใน Azure และส่งกลับไปยังไคลเอนต์ที่ออกคำสั่ง PASV (เช่นในตัวอย่างด้านบนเซิร์ฟเวอร์ FTP ตอบกลับไปยัง คำสั่ง PASV ไคลเอ็นต์ที่มีพอร์ต: 234,235 -> 60139 ไคลเอ็นต์พยายามเปิดช่องสัญญาณข้อมูลไปยังพอร์ต 60139 เพื่อเริ่มการถ่ายโอน -> เซิร์ฟเวอร์ FTP ตอบกลับทันที (ภายใน MS ตามการจับภาพ Wireshark) ที่ออก RST ให้กับลูกค้า)
ฉันคิดว่าปัญหาการจัดสรรพอร์ตชั่วคราวบางอย่างในฝั่งเซิร์ฟเวอร์ FTP -> ดังนั้นฉันจึงลดช่วงพอร์ตชั่วคราวชั่วคราวของระบบปฏิบัติการที่อนุญาตให้ไม่ทับซ้อนช่วงพอร์ต FTP แฝง - โดยใช้
netsh int ipv4 set dynamicport tcp start=49152 num=10000
นอกจากนี้ฉันได้เพิ่มการสำรองช่วงพอร์ตไว้ในสแต็ก netsh อย่างชัดเจนผ่านคำสั่ง
netsh int ip add excludeportrange protocol=tcp startport=60000 numberofports=141 store=persistent
ถึงกระนั้นปัญหาก็ยังคงเกิดขึ้นเป็นครั้งคราว
ฉันอ่านการอภิปรายทางเทคนิคอย่างละเอียดในเว็บไซต์นี้รวมถึงในเซสชันเทคโนโลยี MS Azure เกี่ยวกับวิธีที่ Azure ตรวจสอบสถานะจุดสิ้นสุด (เมื่อส่วนหนึ่งของชุด LB) แต่นี่ไม่สามารถใช้ได้ในกรณีของฉันในฐานะ FTP Passive (การดึงและการอัปโหลด) บนพอร์ตสุ่มภายในช่วงพอร์ต FTP แฝงที่สงวนไว้โดยทั่วไปจะทำงานได้ดี
ฉันสามารถให้รายละเอียดเพิ่มเติมหากจำเป็น - ในระหว่างนี้ฉันจะขอบคุณสำหรับคำแนะนำเพิ่มเติมในการแก้ไขปัญหา / การตรวจสอบด้านเซิร์ฟเวอร์และไคลเอนต์ (ค่อนข้างแน่ใจว่าปัญหาไม่เกี่ยวข้องกับเครือข่ายหรือการกำหนดค่าเครือข่าย)
ฉันยังต้องการสอบถามการแก้ไขปัญหาเพิ่มเติม / คำแนะนำในการตรวจสอบ / เคล็ดลับเกี่ยวกับวิธีการดีบัก winsock สำหรับปัญหาความพร้อมใช้งานของเซิร์ฟเวอร์ที่ซ็อกเก็ต
426
ข้อผิดพลาดการทำแท้งทำตามไม่กี่วินาทีหลังเซสชันอื่นได้รับ550
สิทธิ์ปฏิเสธข้อผิดพลาด ฉันสงสัยว่านี่เป็นข้อผิดพลาดกับ FileZilla แต่สำหรับเราการแก้ไขคือเพื่อป้องกัน 550 (ในกรณีของเราระบบทดสอบพยายามเข้าถึงโฟลเดอร์ทดสอบ แต่ใช้ข้อมูลรับรองการผลิตดังนั้นเราต้องแก้ไขข้อมูลประจำตัวของระบบนั้น) .