ฟังก์ชัน FTP บรรทัดคำสั่งไม่ทำงาน


12

ฉันใช้ Windows 7 และมีแอพพลิเคชันไคลเอนต์ FTP หลายตัวทำงานได้โดยไม่มีปัญหา อย่างไรก็ตามเมื่อฉันใช้ FTP บรรทัดคำสั่งฉันสามารถเชื่อมต่อเข้าสู่ระบบ (หลังจากป้อนชื่อผู้ใช้และรหัสผ่าน) แต่มันจะถูกตัดการเชื่อมต่อเสมอเมื่อใช้คำสั่ง dir หรือ ls คำตอบคือ:

การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


เปิดพอร์ต 20, 21 ในไฟร์วอลล์ของคุณ
Sean Perkins

คำตอบ:


13

โดยปกติคุณจะเห็นสิ่งประเภทนี้เกิดขึ้นเมื่อเซิร์ฟเวอร์พยายามเชื่อมต่อกลับกับคุณ แต่ทำไม่ได้ FTP เดิมใช้แชนเนลTCPสองช่อง หนึ่งสำหรับคำสั่งและอื่น ๆ สำหรับการถ่ายโอนข้อมูล เมื่อคุณรันคำสั่ง dir จะใช้ช่องสัญญาณข้อมูล ช่องสัญญาณข้อมูลถูกสร้างขึ้นตามความต้องการและผลลัพธ์ในเซิร์ฟเวอร์พยายามเชื่อมต่อกลับกับคุณ

ส่วนใหญ่แล้วเราเตอร์หรือไฟร์วอลล์ Windows ของคุณจะถูกบล็อค คุณต้องการไคลเอนต์ที่รองรับโหมดPASV

คุณสามารถเปิดใช้งานโหมด PASV ใน Internet Explorer หรือใช้ไคลเอนต์อื่น ฉันไม่แน่ใจว่าเวอร์ชันบรรทัดคำสั่งสามารถใช้โหมด PASV ได้หรือไม่ มันเป็นไคลเอนต์ขั้นพื้นฐานมาก


ขอบคุณแมตต์ ฉันคิดว่าไคลเอนต์บรรทัดคำสั่ง FTP ใช้โหมดพาสซีฟตามค่าเริ่มต้น แต่ฉันเพิ่งพบหลายโพสต์ว่า Windows command-line FTP จริง ๆ แล้วไม่รวมโหมดพาสซีฟ IE ทำงานได้ดีบนเครื่องของฉันเสมอสำหรับ FTP ฉันแค่ต้องการใช้บรรทัดคำสั่งเพื่อตรวจสอบข้อมูลดิบจากเซิร์ฟเวอร์ FTP
ฮ่องกง

จากการทดสอบคุณสามารถดูว่าการเปิดใช้งานหรือปิดใช้งาน PASV ใน internet explorer สร้างความแตกต่าง .. หรือให้ข้อผิดพลาดที่คล้ายกันหรือเหมือนกัน
barlop

1
ftp> PASV - คำสั่งไม่ถูกต้อง (รายการ Windows 7) คำตอบนี้เป็นสิ่งที่เกิดขึ้นจริงในที่ทำงาน
Bratch

6
มันต้องเป็น QUOTE PASV
JosephStyons

5

ฉันมีปัญหากับการส่งไฟล์ผ่าน FTP เมื่อฉันถูกบันทึกลงในช่องคำถาม มันจะสร้างชื่อไฟล์ แต่ไฟล์นั้นว่างเปล่า ฉันแก้ไขมันโดยทำสิ่งต่อไปนี้:

  • ไปที่แผงควบคุม→ไฟร์วอลล์ Windows →การตั้งค่าขั้นสูง→กฎขาเข้า
  • ดับเบิลคลิกที่คอลัมน์ชื่อเพื่อจัดเรียงตามชื่อ
  • เลื่อนลงมาจนกระทั่งเห็นกฎสองข้อที่เรียกว่า "โปรแกรมโอนไฟล์" สิ่งเหล่านี้ถูกตั้งค่าเป็นบล็อกบนพีซีของฉัน (วงกลมสีแดงขนาดใหญ่พร้อมเส้นผ่าน)
  • ดับเบิลคลิกที่กฎ
  • บนแท็บทั่วไปภายใต้การกระทำตั้งค่าเป็นอนุญาตการเชื่อมต่อ
  • คลิก OK
  • ทำสิ่งนี้เพื่อกฎอื่น ๆ

มันควรจะดีตอนนี้


ความหมายของความปลอดภัยในการทำเช่นนี้มีอะไรบ้าง
Peter Mortensen

โปรแกรมบนพีซีของคุณสามารถใช้ ftp ได้แล้ว
Mark Deven

การลบกฎจากนั้นเชื่อมต่อผ่าน FTP และออกคำสั่ง "dir" (เรียกใช้ไฟร์วอลล์ Windows เพื่อถามว่าควรอนุญาต FTP หรือไม่และสร้างกฎใหม่ถ้าคุณตอบว่าใช่) อาจช่วยได้เช่นกัน
mlvljr

5

ไคลเอนต์บรรทัดคำสั่งของ Windows FTP ftp.exeสนับสนุนโหมด FTP ที่ใช้งานเท่านั้น

การตั้งค่า FTP ในโหมดแอ็คทีฟอาจยุ่งยากในปัจจุบันเนื่องจากไฟร์วอลล์และ NATs

อาจเป็นเพราะไฟร์วอลล์ภายในเครื่องหรือ NAT ของคุณที่เซิร์ฟเวอร์ไม่สามารถเชื่อมต่อกลับไปยังไคลเอนต์ของคุณเพื่อสร้างการเชื่อมต่อการถ่ายโอนข้อมูลสำหรับรายการไดเรกทอรี ( lsหรือdirคำสั่ง)

หรือลูกค้าของคุณไม่ทราบที่อยู่ IP ภายนอกและให้ที่อยู่ภายในแทนเซิร์ฟเวอร์ (ในPORTคำสั่ง) ซึ่งเซิร์ฟเวอร์ไม่สามารถใช้งานได้อย่างชัดเจน

ดูของฉันบทความกำหนดค่าเครือข่ายสำหรับ Active โหมด


ถ้าเป็นไปได้คุณควรใช้โหมดพาสซีฟเพราะโดยปกติแล้วมันไม่จำเป็นต้องตั้งค่าเพิ่มเติมบนฝั่งไคลเอ็นต์

น่าเสียดายที่ไคลเอนต์บรรทัดคำสั่ง Windows FTP ( ftp.exe) ไม่สนับสนุนโหมดพาสซีฟเลย มันทำให้ไร้ประโยชน์ในทุกวันนี้

ใช้ไคลเอนต์บรรทัดคำสั่ง Windows FTP อื่นใดแทน โหมดพาสซีฟอื่น ๆ ส่วนใหญ่สนับสนุน

สำหรับค่าเริ่มต้นตัวอย่างเช่น WinSCP ไปที่โหมดเรื่อย ๆ และมีคำแนะนำที่ใช้ได้สำหรับการแปลงสคริปต์ของ Windows FTP เพื่อสคริปต์

(ฉันเป็นผู้เขียน WinSCP)


มันทำงานได้กับ Windows ทุกรุ่น (ตั้งแต่ XP) คุณได้รับข้อผิดพลาดอะไร ลองถามคำถามแยกใหม่พร้อมรายละเอียดเพิ่มเติม
Martin Prikryl

คุณต้องการทั้งwinscp.comและwinscp.exeในโฟลเดอร์เดียวกัน ฉันเชื่อว่าข้อความแสดงข้อผิดพลาดชัดเจนแจ้งว่าwinscp.comค้นหาwinscp.exeในโฟลเดอร์ ดูเพิ่มเติมwinscp.net/eng/docs/executables
Martin Prikryl

Np โปรดลบความคิดเห็น
Martin Prikryl

4

ฉันพบปัญหานี้บนเซิร์ฟเวอร์ Windows 2008

บทความนี้แนะนำการเปิดใช้งาน Application Layer Gateway Service สิ่งนี้ไม่ได้แก้ไขปัญหาสำหรับฉัน

สิ่งที่แก้ไขปัญหาได้เพิ่มข้อยกเว้นในไฟร์วอลล์ Windows สำหรับ C: \ Windows \ system32 \ ftp.exe


1
โดยค่าเริ่มต้นไฟร์วอลล์ windows รวม ftp.exe ในข้อยกเว้นของมัน แต่เฉพาะสำหรับเครือข่ายที่บ้าน / ที่ทำงาน ตรวจสอบให้แน่ใจว่าคุณไม่ได้อยู่ในเครือข่ายสาธารณะอนุญาต ftp สำหรับเครือข่ายสาธารณะเช่นกัน
Jags

1

ฉันประสบปัญหาเดียวกันกับซอฟต์แวร์POSของบุคคลที่สามบนเครื่อง Windows 7 ที่จับคู่ข้อมูลการทำธุรกรรมของลูกค้ากลับไปยังเซิร์ฟเวอร์ SQL

มันทำงานได้ดีจนกระทั่งตำแหน่งไคลเอนต์เปลี่ยนISPและด้วยเหตุนี้ที่อยู่ IP แบบคงที่ คำสั่ง FTP บรรทัดคำสั่งไม่ทำงานนอกเหนือจากการเข้าสู่ระบบเริ่มต้นและไม่มีการแก้ไขใด ๆ ที่ฉันพบทางออนไลน์หรือกระทู้นี้ทำงาน

ฉันเพิ่งสร้างกฎ FTP ขึ้นใหม่ในไฟร์วอลล์เราเตอร์ / ไฟร์วอลล์ D-Link cheapo และไฟร์วอลล์ซึ่งดูเหมือนว่าจะใช้งานได้อีกครั้ง


0

ปัญหา FTP

เปิดพอร์ตบน azure NSG และไฟร์วอลล์ของเซิร์ฟเวอร์: 21,20,4000-40009,990,14147

ปัญหา: ไคลเอนต์ไม่สามารถเชื่อมต่อกับ ftp จากบรรทัดคำสั่งและ Powershell

เราสามารถเชื่อมต่อกับ testuser ได้ แต่ไม่เห็นไดเรกทอรี / รายการ

ติดตั้ง Wireshark บนเซิร์ฟเวอร์และบนแล็ปท็อปของฉันเพื่อดักจับแพ็กเก็ตสร้างตัวกรองบน ​​wireshark ด้วย“ ftp” และ“ IP” การดักจับแพ็กเก็ตไม่ระบุสภาพอากาศว่าเป็นโหมด passive หรือ active และแหล่ง IP นั้นถูกต้อง (เรากำหนดค่า IP หลักและ IP รองบนเซิร์ฟเวอร์)

เราพบว่าการเชื่อมต่อ ftp ไม่ทำงานจากพรอมต์คำสั่ง กำลังพยายามเริ่มต้นการเชื่อมต่อกับ ftp.abcd.com ซึ่งแก้ไขเป็น 11.22.33.44 และไม่ใช่เซิร์ฟเวอร์ FTP จริง 44.33.22.11 ที่อยู่ IP 11.22.33.44 และ 44.33.22.11 มีการกำหนดค่าในเครื่องเดียวกัน อย่างไรก็ตาม DNS แก้ไขไปยัง FTP IP สำรองแทน Primary

เริ่มแรกเรายังพบว่าการเชื่อมต่อ FTP กับ 11.22.33.44 นั้นใช้งานได้ดีและการเชื่อมต่อเหล่านี้เป็นการเชื่อมต่อที่ใช้งานอยู่ เราไม่สามารถเห็นได้ว่าโหมดพาสซีฟทำงานที่นี่ นอกจากนี้ในขณะที่เริ่มต้นการเชื่อมต่อกับ 11.22.33.44 จาก Commad promt เซสชั่นค้างหลังจากที่คุณให้คำสั่ง 'dir' แต่เดียวกันจะทำงานร่วมกับลูกค้า ftp อื่น ๆ เช่น FileZilla และ Winscp

ฉันลองทดสอบกับ WinSCP และ FileZilla และได้เห็นการเชื่อมต่อโหมดพาสซีฟทำงานได้ดีและไม่ทำงานซึ่งเป็นสิ่งที่คาดหวัง เราตรวจสอบว่าเหตุใดคำสั่ง 'dir' จึงไม่ทำงานจากอุปกรณ์หลังจากการตรวจสอบความถูกต้องสำเร็จเราต้องเห็นว่าไฟร์วอลล์ windows กำลังบล็อกการเชื่อมต่อ เราปิดการใช้งานไฟร์วอลล์และทุกอย่างเริ่มทำงานตามที่คาดไว้ ฉันตรวจสอบสิ่งเดียวกันในตอนท้ายหลังจากสร้างกฎไฟร์วอลล์ปัญหาได้รับการแก้ไข มีระบบหนึ่งซึ่งแม้หลังจากปิดการใช้งานไฟร์วอลล์ติดอยู่ที่รายชื่อไดเรกทอรีนี่อาจเป็นปัญหาภายในระบบนั้นหรือการเชื่อมต่อถูกบล็อคโดยปัจจัยภายนอก เนื่องจากหลังจากปิดการใช้งานพวกเราส่วนใหญ่ก็สามารถทำงานได้ดี

ต้องทำการตั้งค่าบนเครื่องไปที่แผงควบคุม→ Windows Firewall →การตั้งค่าขั้นสูง→กฎขาเข้าดับเบิลคลิกที่คอลัมน์ชื่อเพื่อจัดเรียงตามชื่อเลื่อนลงจนกว่าคุณจะเห็นกฎสองข้อที่เรียกว่า "โปรแกรมโอนไฟล์"; สิ่งเหล่านี้ถูกตั้งค่าเป็นบล็อกบนพีซีของฉัน (วงกลมสีแดงขนาดใหญ่พร้อมเส้นผ่าน) ดับเบิลคลิกที่กฎบนแท็บทั่วไปภายใต้การกระทำตั้งค่าเป็นอนุญาตการเชื่อมต่อคลิกตกลง


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