FTP hang on: 150 Membuka koneksi data mode ASCII

15

Saya menyiapkan server FTP pada server Windows 2008 saya (R2).

Semuanya tampaknya diinstal dengan benar tetapi saya mengalami masalah menggunakan Klien FTP untuk masuk ke server FTP saya.

Saya bisa remote desktop ke server dan melalui perintah DOS saya bisa masuk dengan mudah.

Tetapi jika saya mengeluarkan perintah seperti "DIR", itu hang dengan: 150 Membuka koneksi data mode ASCII.

Semua yang saya teliti dan baca poin ke port Firewall dan / atau pengaturan mode Pasif / Aktif.

Inilah yang mengganggu saya ... jika saya menggunakan perintah DOS FTP, saya bisa masuk dan menggunakan perintah "DIR" hanya jika saya menggunakan "localhost" sebagai alamat saya.

Jika saya menentukan URL FTP lengkap saya, saya mendapatkan kesalahan gantung.

jika saya menentukan URL "localhost", saya tidak mendapatkan kesalahan.

Hal ini membuat saya percaya ini masalah Firewall, (atau bahkan masalah IIS7?) Tetapi saya tidak yakin port apa yang perlu saya buka?

Saya memiliki port 20, 21 yang terbuka di firewall Windows saya. Saya juga telah membuka port tersebut di firewall AWS (Amazon) saya.

Saya percaya klien FTP saya menggunakan beberapa nomor port jarak jauh yang berpotensi diblokir oleh salah satu dari dua firewall saya. Saya telah menggunakan alat Pemantau Jaringan untuk mencoba dan melihat port apa yang dipanggil tetapi saya tidak bisa mengetahuinya.

Ada ide, kiat, trik, bantuan?

D3vtr0n
sumber

Jawaban:

9

Server FTP dan klien FTP menegosiasikan port mana yang akan digunakan untuk transfer data (termasuk daftar direktori ketika Anda melakukan "dir" atau "ls") menggunakan "saluran kontrol" dari FTP. Jadi jika "AWS firewall" Anda tidak melakukan inspeksi protokol pada saluran ini, tidak mungkin ia akan tahu port mana yang harus dibuka secara dinamis untuk memungkinkan aliran lalu lintas (dan tutup begitu port-port itu tidak lagi digunakan).

IMHO menggunakan pemantauan jaringan untuk menemukan port mana yang sedang digunakan tidak sepadan dengan usaha karena port ini akan berubah untuk setiap sesi FTP baru.

Kecuali Anda sudah melakukannya, usaha terbaik saya untuk memecahkan masalah ini adalah mencari tweak pada firewall yang melindungi server FTP Anda (jika saya mengerti pertanyaan Anda dengan benar, ini akan menjadi "AWS firewall") dan lihat apakah ada adalah "kenop" untuk mengaktifkan pemeriksaan protokol FTP.

liendo
sumber
6

Saya menerima pesan yang sama ketika mencoba menggunakan lsperintah untuk mendaftar file yang disimpan di server host UNIX FTP dari baris perintah Ubuntu saya. Saya berhasil login menggunakan ftp ftp.example.comdan memasukkan nama pengguna dan kata sandi saya ketika diminta. Namun, saya akan menerima 150 Opening ASCII mode data connectionpesan itu dan tidak ada yang terjadi. Kemudian, saya cukup memasukkan opsi -p(mengubahnya ke mode "pasif" untuk menangani firewall) dengan perintah dan itu berhasil.

 ftp -p ftp.example.com

Masukkan nama pengguna dan kata sandi saat diminta, kemudian perintah seperti lsdan cdakan berfungsi. Saya percaya Anda juga dapat memasukkan perintah ini dan itu akan melakukan hal yang sama, tetapi saya belum mengujinya.

pftp ftp.example.com

Saya tahu pertanyaan tentang Windows; Namun, mengingat kesalahan yang sama diproduksi mengira tip ini layak posting.

Ursus Frost
sumber
Luar biasa .. Membantu saya secara instan
Sambhav Sharma
5

Untuk mendapatkan informasi nyata tentang mengapa koneksi macet, Anda harus menggunakan klien yang mencatat semua perintah protokol untuk melihat apa yang sebenarnya terjadi. Ada situs bagus di FTP dengan contoh log di sini .

Kemungkinan besar juga

  1. klien Anda berada di belakang firewall (bisu, atau yang diblokir SSL) dan sedang mencoba menggunakan FTP mode Aktif
  2. server Anda berada di belakang firewall (bisu, atau yang diblokir SSL) dan mencoba menggunakan FTP mode Pasif

Jika Anda menggunakan SSL, satu-satunya jawaban adalah membuka serangkaian port (katakanlah, 10000-11000) pada firewall dan konfigurasikan server FTP Anda untuk memaksa mode Pasif dan gunakan kisaran port itu. Jika server Anda menggunakan NAT, Anda juga harus mengatur alamat IP yang tepat agar server dapat beriklan ke klien, sebagian besar mematuhi apa pun yang disediakan server sebagai string koneksi mode pasif dan jika server berpikir itu 10.1.1.1, itulah yang itu akan memberi tahu klien.

Jika Anda tidak menggunakan SSL, jawaban terbaik adalah untuk melihat apakah Anda bisa membuat firewall Anda melakukan inspeksi protokol untuk FTP. Firewall akan membaca lalu lintas di port 21 dan membuka port apa pun yang diinginkan server Anda terbuka. Ini sering dapat memperbaiki alamat NAT juga (ketika firewall juga menangani NAT). Anda mungkin masih ingin memaksakan mode pasif karena beberapa orang tidak tahu cara mengkonfigurasi klien FTP mereka dengan benar dan hampir semua orang di belakang router broadband / firewall hari ini.

Jika Anda tidak bisa mendapatkan firewall yang lebih pintar, maka Anda harus tetap menggunakan opsi "open a bunch of ports" (atau beralih ke protokol yang tidak perlu membuka banyak port acak seperti sshp ssh).

DerfK
sumber
4

Saya memiliki masalah ini dan diselesaikan dengan melakukan hal berikut.

Saya menggunakan FireFTP yang secara default terhubung melalui mode pasif. Ketika mengatur FTP di IIS, port default akan menjadi 21. Saya harus membuka port 21 di firewall yang membuat saya selangkah lebih maju tapi itu akan menggantung pada pembukaan koneksi data mode ASCII .

Ternyata itu lalu pilih beberapa port dinamis lainnya. Saya tahu itu masalah firewall karena firewall tidak terhubung dengan FTP. Juga secara lokal di server - tidak ada masalah.

Untuk memperbaikinya, saya memuat IIS (menggunakan versi 8.0, percaya itu sama dengan 7.5), di tingkat server pohon (itu adalah simpul teratas) klik sekali saja dan pilih "Dukungan FTP Firewall". Setiap situs FTP yang Anda gunakan akan menggunakan rentang port ini, masing-masing situs FTP akan memiliki opsi ini diklik karena diwarisi dari bagian ini.

Dalam Rentang Port Saluran Data, tentukan x jumlah port, dalam kasus saya 10000-10125 .

Sekarang, di firewall Anda buka rentang port TCP itu sebagai "FTP range port pasif".

Saya kemudian berpikir masalahnya akan diselesaikan, tetapi tidak cukup. Pastikan untuk memulai kembali layanan layanan Microsoft FTP untuk mengambil rentang port baru. Tutup FireFTP / klien dan coba lagi dan kali ini Anda akan beruntung. :)

Ricky
sumber
1

Saya memiliki masalah yang sama dengan Anda dan diperbaiki sekarang.

Apa yang saya lakukan adalah membuka Windows Firewall (Win7), klik 'Izinkan program atau fitur melalui Windows Firewall', dan kemudian dalam daftar 'Program dan fitur yang diizinkan', cari tahu 'Program Transfer File' dan centang kotak centang.

Setelah selesai, buka Command Prompt dan masukan ftp XXXX, masuk lalu ls / dir / get / put, semua berfungsi sekarang.

Tapi saya masih gagal terhubung dari File Zilla dan Web Browser, semoga bermanfaat bagi Anda.

sinar
sumber
1

Periksa sinkronisasi waktu server Anda

UglyEugen
sumber
1

Jangan mengacaukan apa pun pada pengaturan Anda

Cukup tambahkan Aturan Outbound di Windows Firewall dengan keamanan tingkat lanjut dan masukkan port no 20.

Nikmati FTP di CLI

ravindra d
sumber
1

Masalahnya bagi saya adalah pada PC lokal, bukan host jarak jauh. Saya mengonfirmasi pemasangan layanan FTP pada host jarak jauh telah membuka semua port pada firewall server dengan benar, jadi itu bukan masalah. Itu PC klien lokal saya yang tidak bermain bersama. Begitu,

  1. Saya membuka Windows Defender Firewall.
  2. Lalu saya mengklik tautan di sebelah kiri, "Izinkan aplikasi atau fitur melalui Windows Defender Firewall":

masukkan deskripsi gambar di sini

  1. Saya menggulir ke bawah ke Program Transfer File dan memeriksa kotak untuk Domain, Pribadi, dan Publik:

masukkan deskripsi gambar di sini

Ini akhirnya memperbaiki ini untukku! Ketika saya pergi untuk mencoba lagi perintah LS, responsnya instan dan tidak ada lagi hangup.

ShieldOfSalvation
sumber
0

Kami menyelesaikan masalah ini menggunakan Wisaya Aturan Masuk Baru Windows Firewall. Pilih Program, lalu C: \ Windows \ System32 \ ftp.exe, Izinkan koneksi, Periksa opsi; Domain, Pribadi, Publik (Anda dapat membatasi kemudian jika perlu), beri nama aturan dan Anda selesai.

Sekarang ftp ke situs ftp dan verifikasi dir atau ls merespons dengan benar.

John Salfer
sumber
0

Saya mengalami masalah yang sama dengan OP

200 perintah PORT berhasil.
150 Membuka koneksi data mode ASCII.
425 Tidak dapat membuka koneksi data.

Saya mengalami masalah di atas ketika saya mencoba menggunakan mode pasif pada baris perintah di Windows.
Saya menemukan informasi yang saya inginkan dengan mencari materi:

IE biasanya menggunakan mode pasif, sedangkan utilitas baris perintah (perintah ftp) selalu menggunakan mode aktif.

Saya mencoba operasi saya sebelumnya di IE dan berhasil. Masalah terpecahkan

tautan materi :https://forums.iis.net/t/1207342.aspx?150+Membuka+ASCII+mode+data+connection+for+file+list+425+Can+t+open+data+connection+

jiku_wang
sumber