FTP“ 425 ไม่สามารถเปิดการเชื่อมต่อข้อมูล” จะเกิดขึ้นเฉพาะเมื่อใช้พรอมต์คำสั่ง


8

คอมพิวเตอร์ของฉันทั้งหมดอยู่หลังเราเตอร์ตัวเดียว ฉันมีเซิร์ฟเวอร์ FileZilla ทำงานอยู่หนึ่งในนั้น ฉันพยายามทำการอัปโหลดไปยังเซิร์ฟเวอร์โดยอัตโนมัติโดยใช้ชุดสคริปต์และ ftp.exe ในตัวของ Window ฉันได้ตั้งค่าบริการ DNS แบบไดนามิกเพื่อให้สามารถเข้าถึงเซิร์ฟเวอร์ของฉันจากภายนอกเราเตอร์และฉันได้ตั้งค่าการส่งต่อพอร์ตในเราเตอร์ไปยังเซิร์ฟเวอร์ของฉัน ฉันสามารถเชื่อมต่อและถ่ายโอนได้ดีโดยใช้ Google Chrome, Windows Explorer และไคลเอนต์ FileZilla อย่างไรก็ตามเมื่อใดก็ตามที่ฉันพยายามใช้ ftp.exe (ด้วยตนเองหรือแบทช์สคริปต์) ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ แต่ถ้าฉันลองทำสิ่งใดก็ตามที่จะเปิดการเชื่อมต่อข้อมูล (LIST, STOR หรือ RETR) ฉันได้รับข้อผิดพลาดต่อไปนี้: 425 ไม่สามารถเปิดการเชื่อมต่อข้อมูล ฉันอนุญาตให้ ftp.exe ในไฟร์วอลล์ของคอมพิวเตอร์ทั้งสองเครื่องแล้ว ความคิดใด ๆ ที่เกิดขึ้นหรือฉันจะแก้ไขได้อย่างไร ฉันไม่จำเป็นต้องใช้ ftp

แก้ไขฉันรู้ว่า ISP ของฉันบล็อกพอร์ตจำนวนมากรวมถึง 21 และพอร์ตอื่น ๆ ในช่วงนั้น ทั้งหมดนี้ตั้งค่าไว้ที่พอร์ต 2121 โดยที่พอร์ตแบบพาสซีฟตั้งค่าไว้ที่ 2122-2142 ทั้งหมดเหล่านี้จะถูกส่งต่อไปยังเราเตอร์ บางที ftp.exe จะใช้พอร์ตที่แน่นอนสำหรับการเชื่อมต่อข้อมูลซึ่ง ISP ของฉันถูกบล็อก ถ้าเป็นเช่นนั้นฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร

คำตอบ:


5

FTP ที่ใช้งานปกติใช้การเชื่อมต่อข้อมูลที่เริ่มโดยเซิร์ฟเวอร์แยกต่างหากสำหรับการถ่ายโอนและใช้การเชื่อมต่อพอร์ต 21 ปกติเป็นช่องทางควบคุมเท่านั้น เมื่อไคลเอ็นต์อยู่หลังไฟร์วอลล์อย่างไรก็ตามไฟร์วอลล์มีแนวโน้มที่จะบล็อกการเชื่อมต่อนี้ ฉันคาดเดาว่า Chrome, Explorer, FireZilla และอื่น ๆ นั้นฉลาดพอที่จะลองใช้โหมดพาสซีฟซึ่งการเชื่อมต่อเริ่มต้นโดยไคลเอนต์เดิมจะใช้เป็นทั้งช่องควบคุมและดาต้า

ดูเหมือนว่าไคลเอนต์ CLI FTP เริ่มต้นของ Windows ไม่รองรับโหมดพาสซีฟ ดังนั้นคุณจะต้องสลับไปncftp อีกทางหนึ่งและฉันคิดว่าน่าจะเป็นตัวเลือกที่ดีกว่าคือใช้ SFTP แทน FTP นั้นไม่ปลอดภัยและจะใช้กับ LAN เท่านั้น SFTP ถูกเข้ารหัสอย่างสมบูรณ์และใช้ช่องสัญญาณเดียวสำหรับข้อมูลและคำสั่งเท่านั้น หากคุณต้องการไคลเอนต์ CLI SFTP PSFTPเป็นตัวเลือกที่ดี


ฉันได้ลองแล้วโดยไม่มีโชค
Garrett

@Garrett: Hrmm ... ดูเหมือนว่าบทความบล็อกที่ฉันเชื่อมโยงไปนั้นผิดและไคลเอนต์ CLI FTP เริ่มต้นไม่รองรับโหมดพาสซีฟ ในกรณีนี้คุณจะต้องเปลี่ยนไคลเอนต์ FTP NcFTPเป็นตัวเลือกหนึ่งและแน่นอนรองรับโหมดพาสซีฟ
Lèsemajesté

ฉันดูคำขอ / การตอบสนองในขณะที่ถ่ายโอนผ่าน Windows Explorer ใช้เครื่องหมายคำพูดเพื่อส่งคำสั่งเดียวกันที่แน่นอนด้วยตนเอง แต่ยังคงมีข้อผิดพลาดเดียวกัน
Garrett

@ Garrett: ฉันคิดว่า Windows Explorer ทำงานได้หรือไม่ หากไคลเอนต์ไม่รองรับโหมดพาสซีฟดังนั้นให้บอกให้เซิร์ฟเวอร์เปลี่ยนไปใช้จะไม่สำคัญ
Lèsemajesté

รองรับบรรทัดคำสั่งหรือไม่และเป็น exe อิสระหรือไม่
Garrett

0

Windows FTP CLI รองรับโหมด PASSIVE ใช้ "quote pasv" เพื่อเข้าสู่โหมดพาสซีฟ


2
ฉันไม่คิดว่าใช้งานได้จริง คุณยืนยันได้ไหมว่าquote pasvทำอะไรบางอย่างใน ftp.exe และไม่ใช่เพียงคำสั่ง dummy?
Lèsemajesté

0

ฉันมีปัญหานี้เช่นกัน ทางออกคือหยุดไฟร์วอลล์ของโปรแกรมป้องกันไวรัส (ในกรณีของฉันคือ McAfee) มันกำลังบล็อกพอร์ตของ FTP


นั่นไม่ใช่วิธีแก้ปัญหาจริงๆ
ivan_pozdeev
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.