FTP หยุดทำงาน: 150 การเปิดการเชื่อมต่อข้อมูลโหมด ASCII


15

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ FTP บนเซิร์ฟเวอร์ Windows 2008 (R2) ของฉัน

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

ฉันสามารถเดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์และผ่านคำสั่ง DOS ฉันสามารถเข้าสู่ระบบได้อย่างง่ายดาย

แต่ถ้าฉันออกคำสั่งเช่น "DIR" มันจะหยุดด้วย: 150 การเปิดการเชื่อมต่อข้อมูลโหมด ASCII

ทุกอย่างที่ฉันวิจัยและอ่านชี้ไปที่พอร์ตไฟร์วอลล์และ / หรือการตั้งค่าโหมด Passive / Active

นี่คือสิ่งที่รบกวนฉัน ... ถ้าฉันใช้คำสั่ง DOS FTP ฉันสามารถเข้าสู่ระบบและใช้คำสั่ง "DIR" ได้ก็ต่อเมื่อฉันใช้ "localhost" เป็นที่อยู่ของฉัน

หากฉันระบุ URL FTP แบบเต็มฉันจะได้รับข้อผิดพลาดในการหยุด

หากฉันระบุ URL "localhost" ฉันไม่ได้รับข้อผิดพลาด

สิ่งนี้ทำให้ฉันเชื่อว่าเป็นปัญหาไฟร์วอลล์ (หรือแม้แต่ปัญหา IIS7?) แต่ฉันไม่แน่ใจว่าพอร์ตใดที่ฉันต้องเปิด

ฉันมีพอร์ต 20, 21 ที่เปิดบนไฟร์วอลล์ Windows ของฉัน ฉันได้เปิดพอร์ตเหล่านั้นบนไฟร์วอลล์ AWS (Amazon) ของฉันแล้ว

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

ความคิดคำแนะนำและเคล็ดลับความช่วยเหลือใด ๆ

คำตอบ:


9

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

IMHO ที่ใช้การตรวจสอบเครือข่ายเพื่อค้นหาพอร์ตที่กำลังใช้งานอยู่นั้นไม่คุ้มค่ากับความพยายามเพราะพอร์ตเหล่านี้กำลังจะเปลี่ยนแปลงสำหรับทุกเซสชัน FTP ใหม่

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


6

ฉันได้รับข้อความเดียวกันเมื่อพยายามใช้lsคำสั่งเพื่อแสดงรายการไฟล์ที่เก็บไว้ในเซิร์ฟเวอร์โฮสต์ UNIX FTP จากบรรทัดคำสั่ง Ubuntu ของฉัน ฉันสามารถเข้าสู่ระบบโดยใช้ftp ftp.example.comและป้อนชื่อผู้ใช้และรหัสผ่านเมื่อได้รับแจ้ง อย่างไรก็ตามฉันจะได้รับ150 Opening ASCII mode data connectionข้อความและไม่มีอะไรเกิดขึ้น จากนั้นฉันเพียงป้อนตัวเลือก-p(เปลี่ยนเป็นโหมด "แฝง" เพื่อจัดการกับไฟร์วอลล์) ด้วยคำสั่งและใช้งานได้

 ftp -p ftp.example.com

ป้อนชื่อผู้ใช้และรหัสผ่านเมื่อได้รับแจ้งจากนั้นคำสั่งเช่นlsและcdจะใช้งานได้ ฉันเชื่อว่าคุณสามารถป้อนคำสั่งนี้และมันจะทำสิ่งเดียวกัน แต่ฉันยังไม่ได้ทดสอบ

pftp ftp.example.com

ฉันรู้คำถามเกี่ยวกับ Windows; อย่างไรก็ตามได้รับข้อผิดพลาดเดียวกันได้รับการผลิตคิดว่าเคล็ดลับนี้มีมูลค่าการโพสต์


เยี่ยมมาก .. ช่วยฉันทันที
Sambhav Sharma

5

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

ส่วนใหญ่มีแนวโน้มว่าทั้ง

  1. ไคลเอนต์ของคุณอยู่หลังไฟร์วอลล์ (เป็นใบ้หรืออื่น ๆ ที่ถูกบล็อกด้วย SSL) และพยายามใช้งาน FTP โหมดที่ใช้งานอยู่
  2. เซิร์ฟเวอร์ของคุณอยู่หลังไฟร์วอลล์ (เป็นใบ้หรืออื่น ๆ ที่ถูกบล็อกด้วย SSL) และพยายามใช้ FTP โหมดแฝง

หากคุณใช้ SSL คำตอบเดียวคือเปิดช่วงของพอร์ต (เช่น 10,000-11,000) ในไฟร์วอลล์และกำหนดค่าเซิร์ฟเวอร์ FTP ของคุณให้บังคับโหมดแฝงและใช้ช่วงพอร์ตนั้น หากเซิร์ฟเวอร์ของคุณใช้ NAT คุณจะต้องตั้งค่าที่อยู่ IP ที่เหมาะสมสำหรับเซิร์ฟเวอร์เพื่อโฆษณาให้กับลูกค้าส่วนใหญ่เชื่อฟังสิ่งที่เซิร์ฟเวอร์จัดให้เป็นสตริงการเชื่อมต่อโหมดพาสซีฟและถ้าเซิร์ฟเวอร์คิดว่าเป็น 10.1.1.1 นั่นคือสิ่งที่ มันจะบอกลูกค้า

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

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


4

ฉันมีปัญหานี้และได้รับการแก้ไขโดยทำสิ่งต่อไปนี้

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

ปรากฎว่ามันเลือกพอร์ตไดนามิกอื่น ๆ ฉันรู้ว่ามันเป็นปัญหาไฟร์วอลล์เช่นเดียวกับไฟร์วอลล์นอก FTP ที่เชื่อมต่อได้ดี รวมทั้งบนเซิร์ฟเวอร์ด้วย - ไม่มีปัญหา

เพื่อแก้ไขฉันโหลด IIS (ใช้เวอร์ชัน 8.0 เชื่อว่าเหมือนกันใน 7.5) ที่เซิร์ฟเวอร์ระดับของทรี (นั่นคือโหนดบนสุด) คลิกครั้งเดียวแล้วเลือก "สนับสนุนไฟร์วอลล์ FTP" แต่ละไซต์ FTP ที่คุณใช้จะใช้ช่วงพอร์ตเหล่านี้ไซต์ FTP แต่ละไซต์จะมีตัวเลือกนี้เป็นสีเทาเนื่องจากสืบทอดมาจากส่วนนี้

ในข้อมูลช่องช่วงพอร์ตระบุxจำนวนของพอร์ตในกรณีของฉัน10,000-10,125

ตอนนี้ในไฟร์วอลล์ของคุณเปิดช่วงของพอร์ต TCP ว่า "FTP ช่วงพอร์ตแฝง"

ฉันคิดว่าปัญหาจะได้รับการแก้ไข แต่ไม่มาก อย่าลืมรีสตาร์ทบริการ Microsoft FTPเพื่อรับช่วงพอร์ตใหม่ ปิด FireFTP / ไคลเอนต์แล้วลองอีกครั้งและคราวนี้โชคดีที่คุณจะได้รับ :)


1

ฉันมีปัญหาเดียวกันกับคุณและแก้ไขแล้ว

สิ่งที่ฉันทำคือเปิด Windows Firewall (Win7) คลิก 'อนุญาตให้โปรแกรมหรือคุณสมบัติผ่าน Windows Firewall' จากนั้นในรายการ 'อนุญาตโปรแกรมและคุณสมบัติ' ค้นหา 'โปรแกรมถ่ายโอนไฟล์' และทำเครื่องหมายที่ช่องทำเครื่องหมาย

หลังจากเสร็จสิ้นให้เปิด Command Prompt และป้อน ftp XXXX ลงชื่อเข้าใช้จากนั้น ls / dir / get / put ทั้งหมดทำงานได้ทันที

แต่ฉันยังไม่สามารถเชื่อมต่อจาก File Zilla และเว็บเบราว์เซอร์ได้หวังว่ามันจะมีประโยชน์สำหรับคุณ



1

อย่ายุ่งกับการตั้งค่าของคุณ

เพียงเพิ่มกฎขาออกในไฟร์วอลล์ Windows ด้วยความปลอดภัยขั้นสูงและใส่หมายเลข 20

เพลิดเพลินกับ FTP บน CLI


1

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

  1. ฉันเปิดไฟร์วอลล์ Windows Defender
  2. จากนั้นฉันคลิกลิงก์ทางด้านซ้าย "อนุญาตแอพหรือฟีเจอร์ผ่าน Windows Defender Firewall":

ป้อนคำอธิบายรูปภาพที่นี่

  1. ฉันเลื่อนลงไปที่โปรแกรมถ่ายโอนไฟล์และทำเครื่องหมายในช่องสำหรับโดเมนส่วนตัวและสาธารณะ:

ป้อนคำอธิบายรูปภาพที่นี่

ในที่สุดก็แก้ไขสิ่งนี้ให้ฉัน! เมื่อฉันไปลองคำสั่ง LS อีกครั้งการตอบสนองนั้นเกิดขึ้นทันทีและไม่ต้องแฮงค์อีก


0

เราแก้ไขปัญหานี้โดยใช้ตัวช่วยสร้างกฎการเข้าใหม่ของ Windows Firewall เลือกโปรแกรมจากนั้นเลือก C: \ Windows \ System32 \ ftp.exe, อนุญาตการเชื่อมต่อ, ตรวจสอบตัวเลือก; โดเมน, ส่วนตัว, สาธารณะ (คุณสามารถ จำกัด ได้ในภายหลังหากจำเป็น) ตั้งชื่อกฎและดำเนินการเสร็จแล้ว

ตอนนี้ ftp ไปยังไซต์ ftp และตรวจสอบ dir หรือ ls ตอบสนองอย่างถูกต้อง


0

ฉันพบปัญหาเดียวกับ OP

คำสั่ง 200 PORT สำเร็จ
150 การเปิดการเชื่อมต่อข้อมูลโหมด ASCII
425 ไม่สามารถเปิดการเชื่อมต่อข้อมูล

ฉันพบปัญหาข้างต้นเมื่อฉันพยายามใช้โหมดพาสซีฟในบรรทัดคำสั่งใน Windows
ฉันพบข้อมูลที่ฉันต้องการด้วยการค้นหาสื่อ:

IE มักใช้โหมดพาสซีฟในขณะที่ยูทิลิตี้บรรทัดคำสั่ง (คำสั่ง ftp) จะใช้โหมดแอคทีฟเสมอ

ฉันลองการทำงานก่อนหน้านี้ใน IE และใช้งานได้แก้ไขปัญหาแล้ว

วัสดุที่เชื่อมโยง: https://forums.iis.net/t/1207342.aspx?150+Opening+ASCII+mode+data+connection+for+file+list+425+Can+t+open+data+connection+

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