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.
virtual-machine
ftp
script
BrianH
sumber
sumber
Jawaban:
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.
sumber
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 -v
akan 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.sumber
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?
sumber