FTP "PUT" gagal dari Mesin Virtual, tetapi bukan host PC: 504 Perintah tidak diterapkan untuk parameter itu

1

Saya memiliki Script FTP yang saya gunakan untuk mengotomatiskan transfer file. Transfer berfungsi dengan baik pada PC saya (XP SP2), tetapi ketika saya mencoba dan menjalankannya pada VM di PC saya (XP SP2), perintah "put" mengeluarkan:

504 Command not implemented for that parameter.

File FTP:

open [ftp site]
[username]
[password]
cd [directory on FTP server]
binary
hash
put ..\[subfolder1]\[Subfolder2]\[subfolder3]\[filename]
bye

Situs / server FTP ada di seluruh dunia, dan tidak di bawah kendali saya.

Dari apa yang saya mengerti tentang 504, itu berarti perintah itu TIDAK PERNAH berfungsi, tetapi karena skrip yang sama TIDAK bekerja pada PC saya (hosting VM), yang menghilangkan sintaks, penamaan file, dll.

Perintah put ketika dipicu dari VM, sebenarnya membuat file 0 panjang pada server FTP target, tetapi tidak mengisi file.

BrianH
sumber
1
Mungkin ingin mengambil alih ini ke serverfault.com .
squillman
Saya tidak berpengalaman dalam bidang scripting FTP, tapi bisakah itu ada hubungannya dengan menggunakan backslash untuk path?
jtbandes
Bagaimana VM terhubung ke jaringan host Anda? Apakah itu di belakang NAT?
heavyd
Bukan backslash, saya sudah pindah ke direktori sumber. Hasil FTP -v: Tidak dapat terhubung ke [alamat IP server ftp]: 52933 - Kesalahan tidak dikenal: 0. Hasil FTP -d: ---> PORT [alamat IP PC virtual dipisahkan oleh koma], 19.129 504 Perintah tidak diterapkan untuk parameter itu . ---> STOR [Nama file] 550 Tidak dapat terhubung ke [ftp server alamat IP]: 52934 - Kesalahan tidak dikenal: 0. VM menggunakan Shared Networking (NAT) yang saya pikir merupakan masalah saat ini ...
BrianH
Astaga ... carriage return nuked dalam komentar, maaf!
BrianH

Jawaban:

2

Menurut saya itu benar-benar terkait dengan masalah jaringan.

Seharusnya firewall pada PC host Anda tidak dibuka untuk lalu lintas dari perangkat lunak VM. Sepertinya saya semua perintah FTP diizinkan (port 20) tetapi ketika Anda memulai transfer data aktual, itu tidak dapat membuka saluran data (pada port 21).

Apakah Anda memiliki kesalahan yang sama dengan perintah lain yang mentransfer data? Seperti "LIST" misalnya.

Coba mode pasif (perintah "PASV") karena tidak akan membuka saluran data yang berbeda.

Snark
sumber
0

Mesin hosting VM berbeda dari VM itu sendiri.
Jika perintah bekerja pada OS dasar mesin, server FTP mengizinkannya.
Ketika perintah tidak berfungsi pada VM OS, server FTP itu (yang berbeda) tidak mengizinkannya.

Apakah saya melewatkan sesuatu yang lain dalam pertanyaan ini?
Ok, Apakah Anda mengatakan bahwa server FTP adalah sama dan
Anda tidak dapat FTP-PUT dari klien VM di mana-saat ia bekerja dari klien OS ftp dasar Anda?

Jika demikian, mungkin ada baiknya mengambil paket dari dua sesi FTP.
Jika sesi gagal beroperasi secara berbeda, bagian itu mungkin tidak didukung oleh server FTP Anda.
Periksa perbedaan mode FTP Aktif / Pasif misalnya (mungkin bukan masalah Anda, tetapi sesuatu seperti ini).

Anda dapat mengambil bidikan dengan Wireshark atau tcpdump difilter untuk server TCP-port.


Perbarui berdasarkan komentar Anda.
saya masih mengatakan Anda harus mengambil tangkapan untuk melihat apa yang gagal.
Namun, ada hal lain yang bisa Anda lakukan, ftp -vakan memberikan semua komunikasi kontrol saat itu terjadi. Anda bisa menggunakannya untuk melihat bagaimana kedua Klien FTP berperilaku berbeda untuk mengidentifikasi masalah. Ups , itu bukan opsi yang tepat ... ada sesuatu yang melacak pertukaran perintah, tidak bisa mendapatkannya sekarang. Mungkin, seseorang di sini ingat.

nik
sumber
Saya baru saja mengklarifikasi pertanyaan, maaf atas kebingungan. VM dan PC host keduanya WinXP SP2, dan server FTP target adalah sama.
BrianH
0

Dari penelitian saya, 504 mungkin memiliki arti lain selain Command not implemented for that parameter. Mungkin juga:

504: habis menunggu gateway
504: mekanisme keamanan tidak dikenal

Saya harap itu membantu. Yang pertama sangat sugestif.

Pertanyaan:
Apa yang terjadi ketika Anda memasukkan put dengan tangan?
Sudahkah Anda mencoba menggunakan sniffer protokol untuk menemukan perbedaan yang tepat antara komunikasi dari PC dan VM?

SUNTING

Apakah mungkin server FTP jarak jauh memiliki beberapa mekanisme keamanan yang memungkinkan komputer Anda tetapi tidak VM?

harrymc
sumber