Fungsi FTP baris perintah tidak berfungsi

12

Saya menggunakan Windows 7 dan memiliki beberapa aplikasi klien FTP yang berfungsi tanpa masalah. Namun, ketika saya menggunakan FTP baris perintah, saya bisa terhubung, masuk (setelah memasukkan nama pengguna dan kata sandi), tetapi selalu terputus ketika perintah dir atau ls digunakan. Jawabannya adalah:

Koneksi ditutup oleh host jarak jauh.

Bagaimana saya bisa memperbaiki masalah ini?

Hong
sumber
Buka port 20, 21 di firewall Anda.
Sean Perkins

Jawaban:

13

Anda biasanya akan melihat hal seperti ini terjadi ketika server mencoba menghubungkan Anda kembali tetapi tidak bisa. FTP awalnya menggunakan dua saluran TCP . Satu untuk perintah, dan yang lainnya untuk mentransfer data. Saat Anda menjalankan perintah dir, ia menggunakan saluran data. Saluran data dibuat berdasarkan permintaan dan menghasilkan server yang mencoba menghubungkan kembali ke Anda.

Kemungkinan besar itu diblokir oleh router atau firewall Windows Anda. Anda memerlukan klien yang mendukung mode PASV .

Anda dapat mengaktifkan mode PASV di Internet Explorer . Atau gunakan klien yang berbeda. Saya tidak yakin apakah versi baris perintah dapat menggunakan mode PASV. Ini klien yang sangat mendasar.

Matt H
sumber
Terima kasih, Matt. Saya pikir klien FTP baris perintah menggunakan mode pasif secara default, tetapi saya baru saja menemukan beberapa posting yang mengatakan bahwa Windows command-line FTP sebenarnya tidak termasuk mode pasif. IE selalu berfungsi dengan baik pada mesin saya untuk FTP. Saya hanya ingin menggunakan command-line untuk memeriksa beberapa data mentah dari server FTP.
Hong
Sebagai percobaan, Anda dapat melihat apakah mengaktifkan atau menonaktifkan PASV di internet explorer membuat perbedaan .. atau memberikan kesalahan yang sama atau sama.
barlop
1
ftp> PASV - Perintah tidak valid. (Entri Windows 7). Jawaban inilah yang terjadi di tempat kerja.
Awal
6
itu harus QUOTE PASV
JosephStyons
5

Saya memiliki masalah dengan pengiriman file melalui FTP setelah saya masuk ke dalam kotak yang dimaksud. Itu akan membuat nama file, tetapi file itu kosong. Saya mengatasinya dengan melakukan hal berikut:

  • Buka Panel Kontrol → Windows Firewall → Pengaturan Lanjut → Aturan Masuk
  • Klik dua kali kolom Nama untuk mengurutkan berdasarkan nama
  • Gulir ke bawah hingga Anda melihat dua aturan yang disebut "Program Transfer File"; ini ditetapkan untuk Diblokir pada PC saya (lingkaran merah besar dengan garis melewatinya)
  • Klik dua kali pada aturan
  • Pada tab Umum , di bawah Tindakan , atur ke Izinkan koneksi
  • Klik OK
  • Lakukan ini untuk aturan lainnya

Seharusnya lebih baik pergi sekarang.

Keljo
sumber
Apa implikasi keamanan dari melakukan ini?
Peter Mortensen
Program di komputer Anda sekarang dapat menggunakan ftp.
Mark Deven
Menghapus aturan, lalu menghubungkan melalui FTP dan mengeluarkan sesuatu seperti perintah "dir" (memicu firewall Windows untuk menanyakan apakah FTP harus diizinkan, dan membuat ulang aturan, jika Anda menjawab Ya) juga dapat membantu.
mlvljr
5

Klien baris perintah Windows FTP hanya ftp.exemendukung mode FTP aktif.

Menyiapkan FTP dalam mode aktif dapat menjadi rumit saat ini karena firewall dan NAT.

Kemungkinan karena firewall atau NAT lokal Anda bahwa server tidak dapat terhubung kembali ke klien Anda untuk membuat koneksi transfer data untuk daftar direktori ( lsatau dirperintah).

Atau klien Anda tidak mengetahui alamat IP eksternal dan memberikan alamat internal sebagai gantinya ke server (dalam PORTperintah), yang jelas-jelas tidak dapat digunakan oleh server.

Lihat artikel saya Konfigurasi Jaringan untuk Mode Aktif .


Jika memungkinkan, Anda harus menggunakan mode pasif karena biasanya tidak memerlukan pengaturan tambahan di sisi klien.

Sayangnya klien baris perintah Windows FTP (the ftp.exe) tidak mendukung mode pasif sama sekali. Itu membuatnya sangat tidak berguna saat ini.

Sebaliknya, gunakan klien baris perintah Windows FTP lainnya. Sebagian besar lainnya mendukung mode pasif.

Misalnya WinSCP default ke mode pasif dan ada panduan yang tersedia untuk mengubah skrip Windows FTP ke skrip WinSCP .

(Saya penulis WinSCP)

Martin Prikryl
sumber
Ini bekerja pada semua versi Windows (sejak XP). Kesalahan apa yang Anda dapatkan? Pertimbangkan untuk mengajukan pertanyaan terpisah yang baru dengan detail lebih lanjut.
Martin Prikryl
Anda membutuhkan keduanya winscp.comdan winscp.exedalam folder yang sama. Saya percaya pesan kesalahan dengan jelas mengatakan bahwa winscp.commencari winscp.exedi foldernya. Lihat juga winscp.net/eng/docs/executables
Martin Prikryl
Np, silakan hapus komentar.
Martin Prikryl
4

Saya mengalami masalah ini di server Windows 2008.

Artikel ini menyarankan untuk mengaktifkan Layanan Layer Gateway Aplikasi. Ini tidak memperbaiki masalah bagi saya.

Apa yang memperbaiki masalah adalah menambahkan pengecualian di Windows Firewall untuk C: \ Windows \ system32 \ ftp.exe

celana
sumber
1
Secara default windows firewall menyertakan ftp.exe sebagai pengecualian tetapi hanya untuk jaringan rumah / kantor. Pastikan Anda tidak berada di jaringan publik atau memungkinkan ftp untuk jaringan publik juga.
Jags
1

Saya mengalami masalah yang sama dengan perangkat lunak POS pihak ketiga pada mesin Windows 7 yang mengelompokkan data transaksi klien kembali ke server SQL.

Ini berfungsi dengan baik sampai lokasi klien mengubah ISP dan, oleh karena itu, alamat IP statis. Command-line FTP command tidak bekerja di luar login awal dan tidak ada solusi yang saya temukan online atau utas ini berfungsi.

Hanya untuk iseng, saya membuat kembali aturan FTP di firewall, router D-Link / firewall murahan , dan biola, sepertinya berfungsi lagi.

Plexus Sage
sumber
0

Masalah FTP

Buka Port pada azure NSG dan server firewall: 21,20,4000-40009,990,14147

Masalah: Klien tidak dapat terhubung ke ftp dari baris perintah dan Powershell

Kami dapat terhubung dengan pengguna uji tetapi tidak dapat melihat direktori / Daftar

Menginstal Wireshark di server dan di laptop saya untuk mengambil paket Membuat filter di wireshark dengan "ftp" dan "IP" Pengambilan paket tidak menyatakan cuaca apakah itu mode pasif atau aktif dan sumber IP benar. (kami mengkonfigurasi IP primer dan sekunder di server)

Kami menemukan bahwa koneksi ftp tidak berfungsi dari command prompt. mencoba untuk memulai koneksi ke ftp.abcd.com yang diselesaikan ke 11.22.33.44 dan tidak ke Server FTP yang sebenarnya 44.33.22.11 alamat IP 11.22.33.44 dan 44.33.22.11 keduanya dikonfigurasi pada Mesin yang sama. Namun, DNS itu memutuskan untuk IP FTP sekunder, bukan Primer

Awalnya, Kami juga menemukan bahwa koneksi FTP ke 11.22.33.44 berfungsi dengan baik dan koneksi ini adalah koneksi aktif. Kami tidak dapat melihat bahwa mode Pasif berfungsi di sini. Juga saat memulai koneksi ke 11.22.33.44 dari Commad promt sesi berhenti setelah Anda memberikan perintah 'dir' namun hal yang sama juga bekerja dengan klien ftp lain seperti FileZilla dan Winscp.

Saya mencoba pengujian dengan WinSCP dan FileZilla dan harus melihat koneksi mode Pasif bekerja dengan baik dan tidak aktif yang merupakan perilaku yang diharapkan. Kami memeriksa mengapa perintah 'dir' tidak berfungsi dari perangkat setelah otentikasi berhasil, kita harus melihat bahwa firewall windows memblokir koneksi. Kami menonaktifkan firewall dan semuanya mulai berfungsi seperti yang diharapkan. Saya memeriksa hal yang sama pada saya setelah membuat aturan firewall, masalah diselesaikan. Ada satu sistem yang bahkan setelah menonaktifkan firewall macet di daftar direktori, ini mungkin menjadi masalah dalam sistem itu atau koneksi diblokir oleh faktor eksternal. Karena setelah menonaktifkan sebagian besar dari kita dapat bekerja dengan baik.

pengaturan perlu dilakukan pada mesin Buka Panel Kontrol → Windows Firewall → Pengaturan Lanjut → Aturan Masuk Klik dua kali kolom Nama untuk mengurutkan berdasarkan nama Gulir ke bawah hingga Anda melihat dua aturan yang disebut "Program Transfer File"; ini ditetapkan untuk Memblokir di PC saya (lingkaran merah besar dengan garis melewatinya) Klik dua kali pada aturan Pada tab Umum, di bawah Tindakan, atur ke Perbolehkan koneksi Klik OK

Desh Kanth
sumber
Inilah jawaban dari @Keljo yang sudah mengatakan (sebenarnya Anda sudah menyalin jawabannya).
Martin Prikryl